[英]mysql query error with mysql_query() function
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:// ......的情況下,期望參數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 。
注意, 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中已棄用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.