Ошибка запроса mysql с функцией mysql_query ()

0
if (!empty($name) || !empty($degree) || !empty($college)|| !empty($gender) || !empty($mail) || !empty($phone) || !empty($city)) 
{
    mysql_query($con,
        "INSERT INTO regstration(name,degree,college,gender,mail,phone,city)
        VALUES('$name','$degree','$college','$gender','$mail','$phone','$city')"
    ) or die("error");  
}

Сообщение об ошибке:

mysql_query() ожидает, что параметр 1 будет строкой с заданным ресурсом C://...... строка 21

  • 2
    Какая у вас ошибка
  • 0
    Какую ошибку вы получаете?
Показать ещё 10 комментариев
Теги:
phpmyadmin

2 ответа

1

Первая проблема с вашим запросом состоит в том, что вы инвертировали строку запроса и объект соединения в своем вызове mysql_query.

Также вы прокомментировали, что номер мобильного телефона - это целочисленный формат, другие ресурсы - varchar. Затем вы должны адаптировать запрос вставки, чтобы не заключать в кавычки целочисленное значение:

$sql= 
    "INSERT INTO regstration(name,degree,college,gender,mail,phone,city) 
     VALUES('$name','$degree','$college','$gender','$mail',$phone,'$city')";
mysql_query($sql, $con) or die("error : " . mysql_error());

Важные замечания:

  • когда происходит ошибка mysql, вы можете получить доступ к сообщению об ошибке, используя mysql_error() (см. приведенный выше код); важно иметь полные сообщения об ошибках, чтобы проанализировать ошибку, вместо общего упоминания error.

  • Любой на SO настоятельно рекомендует использовать подготовленные операторы и параметризованные запросы, чтобы защитить ваш код от внедрения SQL-кода и сделать ваши запросы более читабельными и поддерживаемыми. Такая опечатка намного легче обнаружить при использовании параметризованных запросов.

  • Расширение mysql устарело: стоит подумать о переходе на mysqli или PDO.

  • 0
    ошибка: база данных не выбрана
0

Обратите внимание, что первым аргументом mysql_query является запрос, а не $con.

Может принимать $con качестве второго аргумента:

$query = "INSERT INTO regstration(name,degree,college,gender,mail,phone,city) VALUES('$name','$degree','$college','$gender','$mail','$phone','$city')";
mysql_query($query, $con) or die("error");

И обратите внимание также:

Это расширение устарело в PHP 5.5.0

  • 0
    В вашем предложении будет устранена ошибка последней части. это показывает ошибку.
  • 0
    Какую ошибку это показывает?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню