为什么这个PHP PDO Mysql代码不起作用?

时间:2018-04-28 04:31:53

标签: php

我使用了Like运算符并传递了所有参数但是以下代码仍无效:

public function get_locations($lang, $suggest){
        $this->lang = $lang;
        $this->suggest = $suggest;
        $sql = "SELECT l.location_id, l.location_name_col 
                FROM test_db.location_translations as l
                WHERE l.location_name_col like LIKE :suggest
                AND   l.language_code = :lang
                ";

         $params = array(':suggest'=>"%".$this->suggest."%", ':lang'=> $this->lang);

        $stmt = $this->conn->prepare($sql);            
        $stmt->execute($params);
    }

我得到以下错误:

  带有消息'SQLSTATE [42000]的

PDOException':语法错误或访问   违规:1064您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本以获得正确的语法   在'LIKE'%A%'附近使用                   AND l.language_code ='en''在第3行

请帮帮我。

1 个答案:

答案 0 :(得分:1)

好好看看你的错误代码问题与'LIKE'参数有关,我看到你正在使用'like'和'LIKE'。我认为它应该是这样的:

  

$ sql =“SELECT l.location_id,l.location_name_col FROM   test_db.location_translations为l WHERE l.location_name_col LIKE   :建议AND l.language_code =:lang“;

如果使用上面的代码再次运行该怎么办呢?那么会发生什么?