什么是正确的PDO语法

时间:2012-12-23 18:37:47

标签: php mysql pdo

  

可能重复:
  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");

2 个答案:

答案 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.'%'));

执行它