php - fatal error : Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in you

标签 php mysql sql pdo mysql-error-1064

  $wordsAry = explode(" ", $search);
$wordsCount = count($wordsAry);
$queryCondition = " WHERE ";
for($i=0;$i<$wordsCount;$i++) {
    $queryCondition .= "`location` LIKE '%$wordsAry[$i]%'";
    if($i!=$wordsCount-1) {
        $queryCondition .= " OR ";
    }
}
echo $queryCondition;

$sql1 = "SELECT * FROM `shelves_instruments` 
:szukaj
ORDER BY location ASC";
$licz_ilosc = $connect_db -> prepare($sql1);
$licz_ilosc -> bindValue(':szukaj', $queryCondition, PDO::PARAM_STR);
$licz_ilosc -> execute(); 
$ilosc_stron = $licz_ilosc->rowCount();

WHERE location LIKE '%walida%'

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' WHERE location LIKE '%walida%'' ORDER BY location ASC' at line 2 in

可能出了什么问题?

最佳答案

准备好的语句并不是替代文本的奇特方式。您无法将整个 WHERE 子句作为单个参数发送。

您需要创建一个如下所示的 WHERE 子句:

$where = "WHERE `location` like :term1 OR `location` like :term2";

然后创建您的条款,以便

     $param1 = '%'.$firstTerm.'%'  ;
     $param2 = '%'.$secondTerm.'%'  ;

然后将您的条款与您准备好的声明绑定(bind)

$query = "SELECT * FROM `shelves_instruments` ".$where." ORDER BY location ASC"
$licz_ilosc = $connect_db -> prepare($query);
$licz_ilosc->execute([
    "term1"=>$param1,
    "term2"=>$param2
]);

关于php - fatal error : Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in you,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68968997/

相关文章:

php - mysqli:为什么我需要一条 'if' 语句来创建表?

mysql - 选择 SELECT 中的多个列时,使用 GROUP BY 和 ORDER BY 的查询不起作用

sql - 如何在 SQL 中使用 WHERE 条件从下一条记录中获取值?

mysql - 了解自连接 (SQL) 中 ON 子句的顺序

java - 与此 preg_replace 等效的 Java 是什么?

php - mysql问题动态下拉

javascript - Smarty 从 url 获取变量不正确? (PRG)

mysql - 合并两个选择查询并在顶部显示第一个查询记录

sql - ActiveRecord:如果其中至少有一条记录不符合条件,则排除组

PHP 日期不包括周末