PDO 搜索返回数组()
PDO Search Returning Array()
我有一个包含以下示例数据的数据库
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();
}
我的返回值是
Array ( )
为什么它没有返回任何东西?
你可以试试这个:
$query->execute(array(":$column" => "{$term}%"));
LIKE
运算符需要知道行中值的哪些部分应该忽略。做类似 abc LIKE 'def'
的事情与做 abc='def'
是一样的。 %
字符用于告诉 LIKE
它应该忽略什么。
因此,abc LIKE 'def%'
告诉 LIKE
它应该找到 以 def
开头的东西,并且可能有也可能没有任何东西它。
%
字符可以在搜索字符串中的任何地方使用,并且可以多次使用。例如,abc LIKE '%def%'
查找 包含 def
值中任意位置的内容,abc LIKE '%def'
查找 结束 [=43] 的内容=] 与 def
.
字符串中的{}
只是插值分隔符。当您插入数组值时,您需要使用它们,但有些人也将它们用于常规变量。你并不严格需要它们。您可以只写 "$term%"
,但我发现花括号有助于将变量与字符串的其余部分区分开来。
注意:如果您知道正则表达式,那么 SQL %
字符很像正则表达式中的 .*?
。
我有一个包含以下示例数据的数据库
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();
}
我的返回值是
Array ( )
为什么它没有返回任何东西?
你可以试试这个:
$query->execute(array(":$column" => "{$term}%"));
LIKE
运算符需要知道行中值的哪些部分应该忽略。做类似 abc LIKE 'def'
的事情与做 abc='def'
是一样的。 %
字符用于告诉 LIKE
它应该忽略什么。
因此,abc LIKE 'def%'
告诉 LIKE
它应该找到 以 def
开头的东西,并且可能有也可能没有任何东西它。
%
字符可以在搜索字符串中的任何地方使用,并且可以多次使用。例如,abc LIKE '%def%'
查找 包含 def
值中任意位置的内容,abc LIKE '%def'
查找 结束 [=43] 的内容=] 与 def
.
字符串中的{}
只是插值分隔符。当您插入数组值时,您需要使用它们,但有些人也将它们用于常规变量。你并不严格需要它们。您可以只写 "$term%"
,但我发现花括号有助于将变量与字符串的其余部分区分开来。
注意:如果您知道正则表达式,那么 SQL %
字符很像正则表达式中的 .*?
。