簡體   English   中英

PHP中的mysql_query錯誤-無法將信息插入數據庫

[英]Error with mysql_query in php - Can't insert information into database

我在php中寫了這個查詢:

$query = "insert into admin values($user,$pass,$email,$signature)";
mysql_query($query);

但是它有問題,無法在數據庫中插入信息。 為什么? 數據庫沒有任何錯誤。

您必須將字符串放在引號中。 以這種方式嘗試並檢查錯誤消息。

$query = "insert into admin values('$user','$pass','$email','$signiture')";
mysql_query($query) or die(mysql_error());

您需要引用字符串值:

$query = "insert into admin values('$user','$pass','$email','$signiture')";

同樣,您的值計數必須與列計數完全匹配,否則您必須明確列出列:

$query = "insert into admin (`username`, `password`, `email`, `signiture`)  values('$user','$pass','$email','$signiture')";

同樣,“簽名”也有誤。

首先,您需要在變量周圍加上單引號。 另外,您需要確保正確地對變量進行了轉義,因為如果其中一個變量具有單引號,查詢仍將失敗。

$query = sprintf("insert into admin values('%s','%s','%s','%s')",
        mysql_real_escape_string($user),
        mysql_real_escape_string($pass),
        mysql_real_escape_string($email),
        mysql_real_escape_string($signiture));

mysql_query($query);

最后,正如其他用戶所指出的那樣,顯式列出要插入的列通常是一個好主意。

您需要像這樣用單引號括住您的值

$query = "insert into admin values('$user','$pass','$email','$signiture')";

如果上述方法不起作用,請嘗試使用以下語法:

INSERT INTO TABLE(col1,col2,col3) VALUES('val1','val2','val3')

試試這個(可能不會有所作為,但值得一試):

$query = "insert into admin (userColumnName, passColumnName, emailColumnName, sigColumnName) values ($user, $pass, $email, $signature)";
mysql_query($query);

您必須用userColumnName的實際列名替換userColumnName等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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