2014-06-30 31 views
0
$pdo = $db_con->prepare("SELECT COUNT(*) FROM table WHERE Age=:Age AND ClientID=:ClientID AND LastName=:LastName"); 
$pdo->bindValue(':Age', $_SESSION['Age']); 
$pdo->bindValue(':ClientID', $ID); 
$pdo->bindValue(':LastName', $Last_Name."%"); 
$pdo->execute(); 

在$ Last_Name之後添加通配符導致語句不產生任何結果。Mysql/PHP PDO語句與通配符失敗

如果$ Last_Name的值是Smith,那麼會生成結果,但僅當通配符不存在時纔會生成結果。我已經試過雙方的通配符,並且發生同樣的事情。

未生成錯誤。

回答

2

那是因爲你沒有使用LIKE比較。通配符僅在使用LIKE時適用。由於您正在進行平等測試(=),因此您確實需要在匹配的數據中存在%

嘗試

SELECT .... AND LastName LIKE :LastName 

代替。

+0

當然感謝 – user1209203

1

你想用這樣的:

SELECT COUNT(*) FROM table WHERE Age=:Age AND ClientID=:ClientID AND LastName LIKE :LastName