簡體   English   中英

SQL 語句中的 bindValue() 拋出異常

[英]bindValue() in SQL statement throws exception

我正在嘗試將值綁定到此 SQL 語句:

    $sQuery = $db->prepare('SELECT * FROM products WHERE name = "Hello" AND category = :sCategory AND material = 3 AND size = 20');
    $sQuery->bindValue(':sName', $_POST["txtName"]);
    $sQuery->bindValue(':sCategory', 5);
    $sQuery->bindValue(':sMaterial', $_POST["txtMaterial"]);
    $sQuery->bindValue(':sSize', $_POST["txtSize"]);
    $sQuery->execute();
    $aOrders = $sQuery->fetchAll();

但是當我使用占位符(此代碼中的 :sCategory )時,它不斷拋出異常。 如果我只是將 5 直接放在語句中,它就會運行,但如果我這樣做的話,它就不會運行。 誰能幫我弄清楚為什么會這樣?

$sQuery = $db->prepare('SELECT * FROM products WHERE name = :sName AND category = :sCategory AND material = :sMaterial AND size = :sSize');
$sQuery->bindValue(':sName', $_POST["txtName"]);
$sQuery->bindValue(':sCategory', 5);
$sQuery->bindValue(':sMaterial', $_POST["txtMaterial"]);
$sQuery->bindValue(':sSize', $_POST["txtSize"]);
$sQuery->execute();
$aOrders = $sQuery->fetchAll();

我知道你說你一次測試每個 bindValue。 但是為了做到這一點,您必須刪除 bindValue。 要“測試”,請嘗試以下操作:

$sQuery = $db->prepare('SELECT * FROM products WHERE name = "Hello" AND category = :sCategory AND material = 3 AND size = 20');
$sQuery->bindValue(':sCategory', 5);
$sQuery->execute();
$aOrders = $sQuery->fetchAll();

暫無
暫無

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

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