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()在给定资源C:// ......第21行的情况下,期望参数1为字符串
答案 0 :(得分:5)
查询的第一个问题是您在调用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上的任何人都强烈建议use prepared statements and parameterized queries,以保护您的代码免遭SQL注入,并使您的查询更具可读性和可维护性。使用参数化查询时,这种错别字要容易得多。
mysql extension is deprecated :您应考虑迁移到mysqli或PDO。
答案 1 :(得分:1)
请注意,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中已弃用