查询不起作用

时间:2010-04-03 03:47:49

标签: php mysql

下面的简单查询无效。知道为什么吗?当我回显三个变量时,返回正确的值,所以我知道我有变量。

提前致谢,

约翰

$comment = $_POST['comment'];
$uid = $_POST['uid'];
$subid = $_POST['submissionid'];


echo $comment;
echo $uid;
echo $subid;

mysql_connect("mysqlv12", "username", "password") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());


$query = sprintf("INSERT INTO comment VALUES (NULL, '%s', '%s', '%s', NULL, NULL)", $uid, $subid, $comment);

mysql_query($query);

1 个答案:

答案 0 :(得分:1)

表面上的查询看起来很好。您要插入的值是什么?他们中的任何一个都有单引号吗?我猜测评论字段是最有可能的罪魁祸首。您的代码完全容易受到SQL注入的影响。您应该按如下方式替换所有变量赋值,以获得最低安全性:

$comment = $_POST['comment'];

变为

$comment = mysql_real_escape_string($_POST['comment']);

这也会偶然处理可能导致查询失败的任何单引号。同样,您需要检查查询是否成功:

mysql_query($query) or die (mysql_error());

会立即告诉你是否有任何问题(sql语法错误,数据库服务器死机,连接失败等等)