You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么这段使用LIKE操作符的PHP PDO MySQL代码无法运行?

问题分析与修复

你这段代码跑不起来的核心问题很明显——SQL语句里重复写了两次LIKE关键字,数据库根本无法识别这种语法错误的语句。

具体修复方案

1. 修正SQL语句的语法错误

把SQL里的like LIKE :suggest改成LIKE :suggest,只保留一个LIKE关键字就好。

2. 补充完整执行逻辑(避免代码断片)

修正后的完整代码

public function get_locations($lang, $suggest){
    $this->lang = $lang;
    $this->suggest = $suggest;
    
    // 修复重复LIKE的语法问题
    $sql = "SELECT l.location_id, l.location_name_col 
            FROM test_db.location_translations as l 
            WHERE l.location_name_col LIKE :suggest 
              AND l.language_code = :lang ";
    
    $params = array(':suggest'=>"%".$this->suggest."%", ':lang'=> $this->lang);
    $stmt = $this->conn->prepare($sql);
    $stmt->execute($params); // 补充执行语句
    
    // 可选:添加获取查询结果的逻辑
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

额外提醒

你在参数值里拼接%通配符的做法是对的,这种方式既能实现模糊查询,又能有效防止SQL注入,继续保持就好~

内容的提问来源于stack exchange,提问作者user5005768-hd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:12:28