PDO使用通配符
问题描述:
准备好的发言我想执行下列MySQL查询:PDO使用通配符
SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'
我想这没有成功:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindParam(':name', "%" . $name . "%");
$stmt->execute();
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE '%:name%'");
$stmt->bindParam(':name', $name);
$stmt->execute();
所以我问你,如果它是可以使用%通配符有准备好的陈述。
/编辑
谢谢。它与bindValue
工作:
$name = "%$name%";
$query = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` like :name");
$query->bindParam(':name', $name);
$query->execute();
答
它可以太以下方式与绑定PARAM工作
$className = '%' . $this->className . '%';
$query->bind_param('s', $className);
答
这可能是一个另类:
$stmt = $dbh->prepare("SELECT * FROM `gc_users` WHERE `name` LIKE :name");
$stmt->bindValue(':name', '%' . $name . '%');
$stmt->execute();
关于你的第一次尝试 - 改变' bindParam'到'bindValue'并打开[PDO错误报告](http://stackoverflow.com/questions/15990857/reference-frequently-asked-questions-about-pdo#15990858) – 2013-04-27 18:48:45