Php 在sql中使用查询时显示语法错误,尽管它有效 $query=“从book1 WHERE中选择*”; foreach($条款为每个$){ $i++; 如果($i==1){ $query.=“像“%$each%”这样的关键字”; } 否则{ $query.=”或“%$each%”之类的关键字; } } $hello=mysql\u查询($query); if(mysql_num_rows($hello)>=1) { while($i=mysql\u fetch\u assoc($query)) { 回声'; 回声'; } }

Php 在sql中使用查询时显示语法错误,尽管它有效 $query=“从book1 WHERE中选择*”; foreach($条款为每个$){ $i++; 如果($i==1){ $query.=“像“%$each%”这样的关键字”; } 否则{ $query.=”或“%$each%”之类的关键字; } } $hello=mysql\u查询($query); if(mysql_num_rows($hello)>=1) { while($i=mysql\u fetch\u assoc($query)) { 回声'; 回声'; } },php,mysql,Php,Mysql,当我运行代码时,会出现以下错误 您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第1行的“LIKE”“%paul%”附近使用的正确语法 但当我在mysql上运行时,同样的查询给出了结果 有人能帮我找到代码的问题吗?需要空间吗 $query ="SELECT * FROM book1 WHERE"; foreach ($terms as $each) { $i++; if($i == 1){ $query.="keywords LIKE '%$each%'";

当我运行代码时,会出现以下错误

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第1行的“LIKE”“%paul%”附近使用的正确语法

但当我在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>';

}       
}
否则,查询将变为

if($i == 1){
    $query.=" keywords LIKE '%$each%'";
            ^^^
}
else{
    $query.=" OR keywords LIKE '%$each%'";
            ^^^
}
缺少
at
$hello=mysql\u查询($query)

注意:mysql已被弃用,请改用mysqli或PDO


谢谢,这就解决了问题。真不敢相信我竟然没有想到这一点。谢谢你有没有尝试过将“像“%$each%”这样的关键字”替换为“像“%$each%”这样的关键字?”?
SELECT * FROM book1 WHEREkeywords...