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


Showing a syntax error eventhough it works when use the query in sql

$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 服务器版本相对应的手册,了解在第 1 行的"LIKE '%paul%'"附近使用的正确语法

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

需要空间

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

否则查询将变为

SELECT * FROM book1 WHEREkeywords...

$hello=mysql_query($query);缺少;

注意 mysql 已弃用,而是使用 mysqli 或 PDO