Php PDO搜索返回数组()
我有一个包含福林示例数据的数据库 我使用PDO搜索名称(第3列,我有点排除了标题),使用以下内容: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
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}%”是的!非常感谢。你能解释一下为什么吗?我怎么才能相信你的回答呢?