2012-02-29 95 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