2012-03-31 59 views
0

我遇到了MySQL和PHP的問題。如何從PHP表格執行數據庫插入

當我嘗試從PHP用戶,並添加到數據庫中,我得到的錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user', 'password') VALUES(,)' at line 1

這是我的PHP代碼:

$user = $_REQUEST["user"]; 
$password = $_REQUEST["pass"]; 

// Make a MySQL Connection 
mysql_connect("localhost", "root", "root") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 

// Insert a row of information into the table "example" 
mysql_query("INSERT INTO accounts('user', 'password') 
VALUES($user, $password)") 
or die(mysql_error()); 

echo "Data Inserted!"; 
+1

一定要過濾數據時你會在數據庫查詢中使用。請參閱[SQL注入](http://en.wikipedia.org/wiki/SQL_injection) – safarov 2012-03-31 18:30:30

+2

您應該使用'$ _POST'而不是'$ _REQUEST',並且您的代碼易受SQL注入攻擊。最後,你真的**不應該**存儲密碼明文。我無法強調這一點。 – kba 2012-03-31 18:31:38

+0

數據現在沒有被插入,爲什麼? – user1305371 2012-03-31 18:44:16

回答

3

你需要躲避字段名(或沒有),而不是單引號,並可能將用戶名和密碼用單引號括起來。:

mysql_query("INSERT INTO accounts(`user`, `password`) 
VALUES('$user', '$password')") 
or die(mysql_error()); 
0

您的值需要被包含。我會用這個查詢來插入值。希望能幫助到你。

mysql_query("INSERT INTO accounts(user, password) VALUES('$user', '$password')") 
+0

這似乎工作,但沒有數據被添加到數據庫 – user1305371 2012-03-31 18:42:39

+0

嘗試檢查您的變量,看看你實際上試圖插入。你可以使用print_r($ _ REQUEST)。同樣要小心直接在數據庫查詢語句中使用這些變量,就像你一樣。確保您清理數據和/或使用PHP數據對象(PDO)準備語句。 – 2012-03-31 20:21:07

1

看看錯誤消息,$ user和$ pass都是空的。嘗試使用echo語句來驗證這些。

-1

你需要加引號的

mysql_query("INSERT INTO accounts('user', 'password') VALUES('$user', '$password')"); 

還你沒有得到的數據,(使用近 '' 用戶」, '密碼')VALUES(,))

$user  = $_REQUEST["user"]; 
$password = $_REQUEST["pass"];