显示语法错误,尽管它在sql中使用查询时有效

时间:2016-04-16 07:18:21

标签: php mysql

$query ="SELECT * FROM book1 WHERE";
foreach ($terms as $each) {
$i++;
if($i == 1){
    $query.="keywords LIKE '%$each%'";
}
else{
    $query.="OR keywords LIKE '%$each%'";
}
}
$hello=mysql_query($query);
if(mysql_num_rows($hello)>=1)
{
while($i= mysql_fetch_assoc($query))
{   
    echo '  ';
    echo '<h2><a href="'.$i['link'].'">'.$i['bname'].'</a></h2>';

}       
}

运行代码时出现以下错误

您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,以获得正确的语法,以便使用&#39; LIKE&#39;%paul%&#39;&#39;在第1行

但是当我在mysql上运行它时,相同的查询给出了结果 有人可以帮我找到我的代码问题吗?

1 个答案:

答案 0 :(得分:2)

需要空间
if($i == 1){
    $query.=" keywords LIKE '%$each%'";
            ^^^
}
else{
    $query.=" OR keywords LIKE '%$each%'";
            ^^^
}

否则查询成为

SELECT * FROM book1 WHEREkeywords...

;

时遗失$hello=mysql_query($query);
  

注意不推荐使用mysql而是使用mysqli或PDO