-4

可能重复:
如何在 PHP 中使用 LIKE 语句创建 PDO 参数化查询?

我的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");
4

2 回答 2

3

准备好的语句很有用,因为它们将查询和参数分开。现在可以忘记串联。

$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();
于 2012-12-23T18:41:31.710 回答
1
$query = $db->prepare("SELECT companyname, axiscategory
                       FROM axispl
                       WHERE companyname LIKE ?
                       LIMIT 11");

然后你执行它使用$query->execute(array($searchterm.'%'));

于 2012-12-23T18:40:27.687 回答