PDO搜索返回数组()

时间:2015-04-18 23:14:32

标签: php pdo

我有一个包含以下示例数据的数据库

http://i.stack.imgur.com/YOmX9.png

我正在使用PDO搜索名称(第3列,我排除了标题),使用以下内容:

search('items', 'name', 'Strong');

public function search($table, $column, $term){
        $command = "SELECT name FROM `$table` WHERE `$column` LIKE :$column";
        $query = $this->connection->prepare($command);
        $query->execute(array(":$column"=>$term));
        return $query->fetchAll();
    }

和我的reutrn是

Array ( )

为什么不归还任何东西?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

$query->execute(array(":$column" => "{$term}%"));

LIKE运算符需要知道它应忽略的值的哪些部分。执行abc LIKE 'def'之类的操作与执行abc='def'相同。 %字符用于告诉LIKE它应忽略的内容。

因此,abc LIKE 'def%'告诉LIKE它应该找到 def开头的内容,并且之后可能有或没有任何内容。

%字符可以在搜索字符串中的任何位置和多次使用。例如,abc LIKE '%def%'在值中的任何位置找到包含 def的内容,abc LIKE '%def'找到结束的内容{{1} }}

字符串中的def只是插值分隔符。插入数组值时需要使用它们,但有些人也将它们用于常规变量。你并不严格需要它们。你可以写它{},但我发现花括号有助于区分变量与字符串的其余部分。

注意:如果您知道正则表达式,则SQL "$term%"字符与正则表达式中的%非常相似。