Php PDO搜索返回数组()

Php PDO搜索返回数组(),php,pdo,Php,Pdo,我有一个包含福林示例数据的数据库 我使用PDO搜索名称(第3列,我有点排除了标题),使用以下内容: search('items', 'name', 'Strong'); public function search($table, $column, $term){ $command = "SELECT name FROM `$table` WHERE `$column` LIKE :$column"; $query = $this->connection

我有一个包含福林示例数据的数据库

我使用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();
    }
而我的朋友是

Array ( )
为什么它没有返回任何内容?

您可以尝试以下方法:

$query->execute(array(":$column" => "{$term}%"));
LIKE
操作符需要知道应该忽略行中值的哪些部分。执行类似于“def”的
abc的操作与执行
abc='def'
的操作相同。
%
字符用于告诉它应该忽略什么

因此,
abc-LIKE'def%
告诉
LIKE
它应该找到以
def
开头的东西,后面可能有,也可能没有

%
字符可以在搜索字符串中的任何位置多次使用。例如,类似于“%def%”的
abc
查找值中任何位置包含
def
的内容,类似于“%def”的
abc
查找以
def
结尾的内容

字符串中的
{}
只是内插分隔符。在插值数组值时,需要使用它们,但有些人也将它们用于正则变量。你并不需要它们。您可以编写它,
“$term%”
,但我发现大括号有助于区分变量和字符串的其余部分


注意:如果您知道正则表达式,那么SQL
%
字符很像正则表达式中的
*?

试试
“:$column”=>“{$term}%”是的!非常感谢。你能解释一下为什么吗?我怎么才能相信你的回答呢?