$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,但仅当通配符不存在时才是。我已经尝试了双方的通配符,同样的事情发生了。
不会产生任何错误。
答案 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