[英]Mysql/PHP PDO statement failing with wildcard
$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,但仅当通配符不存在时才产生结果。 我已经尝试了两边的通配符,并且发生了相同的事情。
没有错误产生。
那是因为您没有使用LIKE
比较。 通配符仅在使用LIKE
时适用。 由于您正在执行相等性测试( =
),因此您实际上要求匹配的数据中包含%
。
尝试
SELECT .... AND LastName LIKE :LastName
代替。
您想使用LIKE:
SELECT COUNT(*) FROM table WHERE Age=:Age AND ClientID=:ClientID AND LastName LIKE :LastName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.