解析网页时插入mysql错误

时间:2013-05-14 01:32:47

标签: php mysql

您好我想在我的数据库中插入注释时,我使用Mysql Escape String函数清理数据,但是在字段中插入以下逐字。我打印评论并且它工作正常并向我显示文本但是当我清理它时,它会将以下内容插入到我的数据库中

  mysql_real_escape_string(Comment)

这是我的插入语句,Id正确插入但注释不是它只是在字段中插入“mysql_real_escape_string(Comment)”。什么可能是错的?

 foreach($html->find("div[class=comment]") as $content){
  $comment = $content->plaintext;
  $username = mysql_real_escape_string($comment);
   $querytwo = "insert into Tchild(Tid,Tcomment)values('$id','$username')";

   $resulttwo = $db -> Execute($querytwo);
  }

2 个答案:

答案 0 :(得分:2)

如果我正确地阅读the documentation,你应该这样打电话:

$db->Execute("insert into Tchild(Tid,Tcomment)values(?, ?)", array($id, $username));

这将说明适当的逃避。在查询字符串中使用未转义的值是危险的,应尽可能避免使用。由于您的数据库层支持?等SQL占位符,因此您应该在查询中放置数据时充分利用这些占位符。

除非您使用mysql_real_escape_string,否则对mysql_query的调用无效。它需要连接到MySQL数据库才能正常运行。

答案 1 :(得分:0)

由于你正在使用ADODB,你想要的可能是$db->qstr()。例如:

$username = $db->qstr($comment, get_magic_quotes_gpc());

有关详细信息,请参阅此页面:http://phplens.com/lens/adodb/docs-adodb.htm