0

我想将 $newreg 缓冲区数据存储到 mysql 数据库。我在 mysql 中尝试使用 text 和 BLOB,但它返回错误You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '179' height='100' />',2)' 附近使用正确的语法

或者有没有其他方法可以做到这一点?

ob_start();
echo("\n<div class='templadf_section_2'>");
echo("<img src=$tprofpic1 alt=$description />");
echo("<h4>For sale at $district</h4>");
echo("<p>$description</p>");
echo("<div class='price'>PRICE:<span> $expectedprice INR</span></div>");    
echo("<div class='readmore'><a href=$tempath>Read more</a></div>");                       
echo("</div>");
$newreg=ob_get_clean();
4

3 回答 3

1

如果没有看到您的 mysql 查询,我无法确定,但如果我不得不猜测,我会说您没有转义查询中的撇号。确保在运行查询之前通过mysql_real_escape_string()运行数据。

正如 Dagon 所说,您应该将字符串分配给 $newreg 而不是使用输出缓冲。如果它分布在代码用户 $newreg .= "string" 中,则将更多内容附加到字符串中。使用 ob 有效,但它会增加额外的开销,并且根据您的代码可能允许将意外文本添加到字符串中

于 2013-06-19T04:04:08.987 回答
0

除了@CJ Wurtz 的回答之外,我只看到了这个解决方案:看起来,您要么没有使用引号作为数值,要么您的输入数据在使用前没有被清理/转义。

于 2013-06-19T04:17:25.560 回答
0

尝试这个

$newreg = mysql_real_escape_string(stripslashes(ob_get_clean()));

这将转义字符串/条目中的单引号。

于 2013-06-19T04:28:30.057 回答