什么是正确的 PDO 语法 [重复]
Posted
技术标签:
【中文标题】什么是正确的 PDO 语法 [重复]【英文标题】:what is the correct PDO syntax [duplicate] 【发布时间】:2012-12-23 18:37:46 【问题描述】:可能重复: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 格式。我怀疑我在搜索词中使用的通配符(任何以...开头的东西)。如何以 PDO 形式实现这一目标?
我将代码写到 WHERE。然后当谈到写 companyname = : ...我被卡住了。
$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl WHERE companyname
LIKE '$searchterm%' LIMIT 11");
【问题讨论】:
【参考方案1】: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();
【讨论】:
【参考方案2】:$query = $db->prepare("SELECT companyname, axiscategory
FROM axispl
WHERE companyname LIKE ?
LIMIT 11");
然后你使用$query->execute(array($searchterm.'%'));
执行它
【讨论】:
以上是关于什么是正确的 PDO 语法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]