在PDO中实现LIKE查询

我在PDO中实施LIKE时遇到问题

我有这个查询:

$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";

$params = array($var1, $var2);

$stmt = $handle->prepare($query);

$stmt->execute($params);

我检查了,$var1并且$var2它们都包含我要搜索的单词,由于我的某些查询SELECT

INSERT有效,因此我的PDO正常工作,只是我对LIKEPDO 不太熟悉。

结果不返回。我$query的语法正确吗?

回答:

您必须%在而$params不是查询中包括符号:

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";

$params = array("%$var1%", "%$var2%");

$stmt = $handle->prepare($query);

$stmt->execute($params);

如果您在之前的代码中查看生成的查询,则会看到类似的内容SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR

address LIKE '%"bar"%',因为prepared语句在一个已被引用的字符串内引用了您的值。

以上是 在PDO中实现LIKE查询 的全部内容, 来源链接: utcz.com/qa/405133.html

回到顶部