可能重复:
How do I create a PDO parameterized query with a LIKE statement in PHP?
我的sql语句最初是这样的:
"SELECT companyname, axiscategory
FROM axispl WHERE companyname
LIKE '$searchterm%' LIMIT 11"
现在我想将其更改为PDO格式。我怀疑是关于我在searchterm中使用的外卡(任何以...开头)。我如何以PDO形式实现这一目标?
我把代码写到WHERE。然后说写公司名=:......我被卡住了。
$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl WHERE companyname
LIKE '$searchterm%' LIMIT 11");
答案 0 :(得分:3)
Prepared语句很有用,因为它们将查询和参数分开。连接现在是值得忘记的。
$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl WHERE companyname
LIKE :searchterm LIMIT 11");
$query->bindValue('searchterm',$searchterm.'%');
$query->execute();
//then to fetch the results
$query->fetch(PDO::FETCH_ASSOC);
这里我使用了命名参数,因为它们更具可读性,但您也可以使用索引参数:
$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl WHERE companyname
LIKE ? LIMIT 11");
$query->bindValue(1,$searchterm.'%');
$query->execute();
答案 1 :(得分:1)
$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl
WHERE companyname LIKE ?
LIMIT 11");
然后使用$query->execute(array($searchterm.'%'));