如何在php中插入一个缓冲数据到mysql


how to insert a buffer data to mysql in php

我想将$newreg缓冲区数据存储到mysql数据库。我尝试在mysql的文本和BLOB,但它返回错误你有一个错误在你的SQL语法;查看对应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();

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

正如Dagon所说,您应该将字符串赋值给$newreg,而不是使用输出缓冲。如果它被分散到代码中,用户$newreg .= "string"向字符串追加更多内容。使用ob可以工作,但是它增加了额外的开销,并且根据您的代码可能会允许将意外的文本添加到字符串

中。

除了@CJ Wurtz的回答,我只看到这个解决方案:似乎,您要么不使用数值引号,要么您的输入数据在使用前未被清理/转义。

试试这个

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

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