簡體   English   中英

使用mysql_query()函數的mysql查詢錯誤

[英]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擴展名 :您應考慮遷移到mysqliPDO

注意, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM