簡體   English   中英

PDO / PHP條件不滿足返回的行數

[英]PDO / PHP conditions on number of rows being returned not being met

我有以下代碼:

<?php
$stmt = $db->prepare("select * from products where `price`=:price and `id`=:id and date => NOW()");
$stmt->bindParam(":price", $_GET['price'], PDO::PARAM_STR);
$stmt->bindParam(":id", $_GET['id'], PDO::PARAM_INT);
if ($stmt->execute() == true){
    if($stmt->rowCount()==1){
        echo "1 row";
    }else{
        echo "more than 1 row";
    }
}else{
    echo "nothing returned";
}
?>

如果在數據庫中有1個匹配項,我得到:1行輸出如果超過1行,我仍然得到:1行輸出,如果沒有匹配項,我得到:

PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [42000]:語法錯誤或訪問沖突:1064您的SQL語法有錯誤;請參見參考。 檢查與您的MySQL服務器版本相對應的手冊,以在第1行的'=> NOW()'附近使用正確的語法

請有人幫忙

謝謝

附言 數據庫連接肯定有效!

我不知道為什么您只在某些條件下會遇到此問題,但是您的比較運算符似乎已切換了字符。

date => NOW()

應該

date >= NOW()


乍一看,我認為這是因為DATE是保留字,您將其用作列名而沒有反引號。 但是, 根據文檔

MySQL允許某些關鍵字用作未加引號的標識符,因為以前很多人都使用過它們。 示例如下列表:

行動
比特
日期
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM