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
Первая проблема с вашим запросом состоит в том, что вы инвертировали строку запроса и объект соединения в своем вызове 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.
Обратите внимание, что первым аргументом 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