1

我正在解析一个提要,我想将它插入到我的数据库中。我回显了正确的提要条目,但是当我想插入数据库时​​,我收到了这个错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 'update, link) VALUES (...) 附近使用。

这是代码:

include_once("connect_to_mysql.php");

$xml= simplexml_load_file('http://somefeed/feeds/rss');
$list = $xml->entry;
$title = $list[0]->title;
$img = $list[0]->summary->div->img['src'];
$update = $list[0]->updated;
$link = $list[0]->link['href'];

$sql = mysql_query("INSERT INTO table (title, img, update, link) 
VALUES ('$title', '$img', '$update', '$link')") or die (mysql_error());

这在我的网站上运行良好,但现在我收到了这个错误。我正在使用 xampp。还有一些条目是带有 http:// 的文件,有问题吗?我发现了类似的帖子,但他们的修复对我不起作用。

4

1 回答 1

6

这是两个保留关键字:在您的查询tableupdate使用,它必须用反引号转义。

INSERT INTO `table` (title, img, `update`, link) 
VALUES ('$title', '$img', '$update', '$link')

作为旁注,SQL Injection如果值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-01-11T13:32:07.477 回答