Mysql / PHP PDO语句失败,带有通配符

时间:2014-06-30 14:35:01

标签: php mysql

$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之后添加通配符会导致语句不产生任何结果。

如果$ Last_Name的值是产生结果的Smith,但仅当通配符不存在时才是。我已经尝试了双方的通配符,同样的事情发生了。

不会产生任何错误。

2 个答案:

答案 0 :(得分:2)

那是因为您没有使用LIKE比较。通配符仅在使用LIKE时适用。由于您正在进行相等性测试(=),因此您确实要求匹配数据中存在%

尝试

SELECT .... AND LastName LIKE :LastName

代替。

答案 1 :(得分:1)

你想使用LIKE:

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