导致此SQL语法错误的原因是什么

时间:2011-10-22 04:44:50

标签: php sql

当我运行一个函数的这一部分,该部分使包含链接的字符串中的可点击链接

$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
    '<a href="\\1">\\1</a>', $text);

并尝试将其插入数据库中我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'http://sitename.com/alpha/">http://sitename.com/alpha/' at line 1

我不确定如何更正语法错误。提前谢谢!

干杯

2 个答案:

答案 0 :(得分:4)

您的SQL很可能存在一个注入漏洞,您尝试插入的HTML中的引号会发痒,或者您在将$ text变量插入查询字符串时忘记引用它。

忽略ereg函数系列已被弃用且不应再使用的事实:

$test = eregi_replace(blah blah blah );
$test = mysql_real_escape_string($test);

$sql = "INSERT INTO yourtable (htmlfield) VALUES ('$test');";

应该解决问题。

答案 1 :(得分:0)

我相信这是由您的代码分隔符引起的。无论eregi_replace如何被弃用。使用preg_replace()代替。