2012-02-15 136 views
1

我在與一個SQL查詢從PHP問題INSERT語句不從PHP代碼的工作,但在phpMyAdmin工作

查詢是

mysql_query("INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('$chosen_name','$chosen_mail','$chosen_pw')")) 

當我打印查詢文本這樣:

print "INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('$chosen_name','$chosen_mail','$chosen_pw')"; 

將返回我的輸入是這樣的:

INSERT INTO `pwn_users` (`name`,`email`,`password`) values ('Testuser','[email protected]','testpass') 

數據雖然沒有插入表中。但是當我將最後一條語句直接複製到phpmyAdmin的SQL Querybox時,它會正確插入。

+4

你有開放的連接嗎? – PeeHaa 2012-02-15 10:42:29

+0

除此之外,您可能想要使用準備好的語句,您是否連接了正確的用戶?測試select是否正常工作,也許你有一些連接問題。你有沒有收到任何錯誤信息? – reox 2012-02-15 10:44:00

+0

如果可以,請嘗試使用PHP的'mysqli'庫而不是'mysql'。 – wecsam 2012-02-15 10:51:00

回答

2

我不知道它是否是一個錯字,但是您的第一行代碼最後有一個豐富的),它缺少一個分號。

如果使用mysql_query()只有一個參數,它將使用"the last link opened by mysql_connect()"。你確定你有一個開放的連接?

如果你確定你有一個開放的連接,你可以在撥打mysql_query()之後總是嘗試撥打mysql_error()以獲得更多關於可能錯誤的信息。

編輯;以迴應其他答案;你的引號,撇號或反轉撇號沒有任何問題。

+1

mysql_query($ queryStr)或死亡(mysql_error()); mysql_error給了我一個字段,我沒有聲明在查詢中沒有一個錯誤默認值。直接在表格中修復這個問題。插入作品後,我沒有在查詢中調用每個字段都有一個默認值。你可以在數據庫本身設置一個默認值 - 你可以使用PHPMyAdmin來完成它。如果您轉到表格並點擊頂部的結構選項卡,然後點擊相關字段的編輯鏈接(小筆),您可以選擇一個名爲Default的選項 - 將該選項框設置爲「按照定義」,然後輸入下面的文本字段中的默認值。 – user1211030 2012-02-15 12:55:54