我正在为学校项目基于Faroo.com(http://www.faroo.com/hp/api/api.html)的API制作搜索引擎。我想索引Faroo的索引,以便用户(在我的情况下,孩子)可以投票赞成或反对单个结果。
我的(PHP)脚本是什么样的:
如果查询存在,请在MySQL数据库中查找。
是=>从数据库中加载结果并将其显示给用户
否=>从Faroo加载结果,向用户显示结果并将其存储在数据库中
我的数据库如下所示:
我从Faroo API获取存储在列中的所有数据,除了“ id”列。
最后一部分(将Faroo数据存储在数据库中)的地方出了问题:
for($x=0; $x<$tel; $x++){
$sql = "INSERT INTO queries (`id`, `query`, `title`, `url`, `domain`, `kwic`, `votes`) VALUES (NULL, $q, $titles[$x], $urls[$x], $domains[$x], $kwics[$x], 0);";
echo '<br />'.$x.'e query: @'.$sql.'@';
if(!$resultaat = $db->query($sql)){
die('De query kon niet worden uitgevoerd: [' . $db->error . ']');
}
$resultaat = mysqli_fetch_array($resultaat);
}
$tel
是一个变量,用于计算我从Faroo获得的结果数。它是在这段代码之前定义的。当我运行此代码时,我得到一个很好的MySQL错误:
您的SQL语法有误;检查手册
对应于您的MySQL服务器版本以使用正确的语法
靠近国家矿务局-维基百科,免费百科全书,
第1行的www.wikipedia.org”
我已经搜索了,但是却找不到SQL错误。我认为这与字符串中的奇怪字符有关,或者我的报价是错误的?
亲切的问候,
马克斯
最佳答案
我认为您需要在varchar列中使用单引号'
,因此请按如下所示进行更改
$sql = "INSERT INTO queries (`id`, `query`, `title`, `url`, `domain`, `kwic`, `votes`) VALUES (NULL, '$q', '$titles[$x]', '$urls[$x]', '$domains[$x]', '$kwics[$x]', 0)";
我删除的查询末尾还有一个额外的双引号,因为
id
和votes
列是integer
字段,所以不需要单引号关于php - MySQL“INSERT INTO”错误:我必须使用哪个引号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21953600/