2012-02-29 93 views
1

我剛開始php只用了2-3天我應該如何插入一個變量到數據庫,併爲什麼我得到這個錯誤的原因?php插入數據到表

我覺得我沒有underestand串並插入到數據庫完全

如果你能建議我一些書籍的非常好的

謝謝您的幫助

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\babak\register.php on line 21 

運行此腳本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <title>register 
    </title> 
</head> 

<body> 
<?php 
mysql_connect('localhost', 'root', ''); 
mysql_select_db('babak'); 
?> 

thanx for your registering &nbsp;<?php echo $_POST["name"]; ?><br/> 
your email is <?php echo $_POST["E-MAIL"]; ?><br/> 
<?php 
    $sql ="INSERT INTO users(id,pass) VALUES ($_POST['id']','$_POST['pass']')"; 
?> 
</body> 
</html> 
+1

我聞到SQL注入。它非常糟糕。 – ThiefMaster 2012-02-29 21:16:19

回答

0
$sql="INSERT INTO users(id,pass) VALUES ($_POST['id']','$_POST['pass']')"; 
               ^^   ^^

當您直接將數組值插入到雙引號字符串中時,不允許使用指示的引號。二者必選其一的

$sql = "INSERT .... '$_POST[id]', '$_POST[pass]'"; 
$sql = "INSERT ... '{$_POST['id']}', '{$_POST['pass']}'"; 
+0

雖然是一個很好的答案,你應該提到SQL注入。 – 2012-03-02 09:02:46

0

當您將數組嵌入到雙引號字符串中時必須使用{$foo['bar']}$foo[bar]無單引號:

$sql="INSERT INTO users(id,pass) VALUES ('{$_POST['id']}', '{$_POST['pass']}')"; 

但作爲已經在我對你的問題發表評論時提及,您需要照顧SQL注入和逃生不可信輸入:

$sql = "INSERT INTO users(id,pass) VALUES (
    '".mysql_real_escape_string($_POST['id'])."', 
    '".mysql_real_escape_string($_POST['pass'])."')"; 
+0

甚至更​​好的是用大括號括住em:'$ sql =「INSERT INTO users(id,pass)VALUES('{$ _POST ['id']}','{$ _POST ['pass']}')」 ;' – 2012-02-29 21:18:27

+0

tanx my frieeeeend – 2012-02-29 21:20:32

+0

這是正確的! – Dax 2012-02-29 21:21:22

0

您的查詢(和字符串實際上)是無效的。而且,永遠不會直接使用用戶輸入,因爲惡意用戶可以輕易破壞腳本並破解數據庫。

$sql = "INSERT INTO users(id,pass) VALUES ('$id','$pass')"; 

$id$pass分別逃脫的$_POST['id']$_POST['pass']版本。

我建議你閱讀一些關於PHP安全的好書。

+0

嗯tanx我的朋友可以建議我關於安全的一些書籍 – 2012-02-29 21:27:22

+0

http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books - PHP類別的前2名。 – 2012-02-29 21:28:57