Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Postgres,查询错误_Php_Sql_Codeigniter_Postgresql - Fatal编程技术网

Php Postgres,查询错误

Php Postgres,查询错误,php,sql,codeigniter,postgresql,Php,Sql,Codeigniter,Postgresql,我做了一个查询,我有语法错误。但对我来说,我做得很好 我哪里有错误 谢谢 $str = "Moscow"; $data = $ci->crud_model->query( 'select * from "Cities" where "defaultName" ilike %'.$str.'%' ); 查询是:select*from“Cities”,其中“defaultName”ilike%Moscow%可以使用关键字ilike,而不是LIKE,根据活动区域设置使匹配不区

我做了一个查询,我有语法错误。但对我来说,我做得很好

我哪里有错误

谢谢

$str = "Moscow";
$data = $ci->crud_model->query(
    'select * from "Cities" where  "defaultName" ilike  %'.$str.'%'
);

查询是:
select*from“Cities”,其中“defaultName”ilike%Moscow%

可以使用关键字ilike,而不是LIKE,根据活动区域设置使匹配不区分大小写。这不在SQL标准中。 让它像在我喜欢的地方

$str = "Moscow";
$data = $ci->crud_model->query('select * from Cities where defaultName LIKE  %$str%');
那么您的查询将是

select * from Cities where defaultName LIKE '%Moscow%';
对于ILIKE: 范例-

SELECT first_name,last_name FROM customer WHERE first_name ILIKE 'BAR%';
在这里,它将根据以下条件返回行:

BAR%模式匹配以BAR、BAR、BAR等开头的任何字符串。如果改用LIKE运算符,查询将不会返回任何行。
参考:

根据活动区域设置,可以使用关键字ILIKE而不是LIKE使匹配不区分大小写。这不在SQL标准中。 让它像在我喜欢的地方

$str = "Moscow";
$data = $ci->crud_model->query('select * from Cities where defaultName LIKE  %$str%');
那么您的查询将是

select * from Cities where defaultName LIKE '%Moscow%';
对于ILIKE: 范例-

SELECT first_name,last_name FROM customer WHERE first_name ILIKE 'BAR%';
在这里,它将根据以下条件返回行:

BAR%模式匹配以BAR、BAR、BAR等开头的任何字符串。如果改用LIKE运算符,查询将不会返回任何行。
参考:

根据活动区域设置,可以使用关键字ILIKE而不是LIKE使匹配不区分大小写。这不在SQL标准中。 让它像在我喜欢的地方

$str = "Moscow";
$data = $ci->crud_model->query('select * from Cities where defaultName LIKE  %$str%');
那么您的查询将是

select * from Cities where defaultName LIKE '%Moscow%';
对于ILIKE: 范例-

SELECT first_name,last_name FROM customer WHERE first_name ILIKE 'BAR%';
在这里,它将根据以下条件返回行:

BAR%模式匹配以BAR、BAR、BAR等开头的任何字符串。如果改用LIKE运算符,查询将不会返回任何行。
参考:

根据活动区域设置,可以使用关键字ILIKE而不是LIKE使匹配不区分大小写。这不在SQL标准中。 让它像在我喜欢的地方

$str = "Moscow";
$data = $ci->crud_model->query('select * from Cities where defaultName LIKE  %$str%');
那么您的查询将是

select * from Cities where defaultName LIKE '%Moscow%';
对于ILIKE: 范例-

SELECT first_name,last_name FROM customer WHERE first_name ILIKE 'BAR%';
在这里,它将根据以下条件返回行:

BAR%模式匹配以BAR、BAR、BAR等开头的任何字符串。如果改用LIKE运算符,查询将不会返回任何行。
参考资料:

您需要在%moscow%周围加上引号:

从“城市”中选择*,其中“defaultName”类似于“%Moscow%”


您需要在%moscow%周围加上引号:

从“城市”中选择*,其中“defaultName”类似于“%Moscow%”


您需要在%moscow%周围加上引号:

从“城市”中选择*,其中“defaultName”类似于“%Moscow%”


您需要在%moscow%周围加上引号:

从“城市”中选择*,其中“defaultName”类似于“%Moscow%”


LIKE
/
ILIKE
运算符将两个字符串作为其参数。也就是说,模式必须是带引号的字符串,而不仅仅是直接在SQL查询中

因此,不是:

"defaultName" ilike %Moscow%
你需要:

"defaultName" ilike '%Moscow%'
在PHP中,您应该(至少)转义输入以避免SQL注入。CodeIgniter可能有转义或使用参数化查询的功能,但至少您应该这样做:

$str = "Moscow";
$data = $ci->crud_model->query(
    'select * from "Cities" where  "defaultName" ilike  \'%'.pg_escape_string($str).'%\''
);
编辑根据Craig Ringer的评论,使用CodeIgniter逃避或构建安全查询的正确方法如下

这可能是最简单的(请注意,查询参数自动为字符串,不需要额外的引号):


LIKE
/
ILIKE
运算符将两个字符串作为其参数。也就是说,模式必须是带引号的字符串,而不仅仅是直接在SQL查询中

因此,不是:

"defaultName" ilike %Moscow%
你需要:

"defaultName" ilike '%Moscow%'
在PHP中,您应该(至少)转义输入以避免SQL注入。CodeIgniter可能有转义或使用参数化查询的功能,但至少您应该这样做:

$str = "Moscow";
$data = $ci->crud_model->query(
    'select * from "Cities" where  "defaultName" ilike  \'%'.pg_escape_string($str).'%\''
);
编辑根据Craig Ringer的评论,使用CodeIgniter逃避或构建安全查询的正确方法如下

这可能是最简单的(请注意,查询参数自动为字符串,不需要额外的引号):


LIKE
/
ILIKE
运算符将两个字符串作为其参数。也就是说,模式必须是带引号的字符串,而不仅仅是直接在SQL查询中

因此,不是:

"defaultName" ilike %Moscow%
你需要:

"defaultName" ilike '%Moscow%'
在PHP中,您应该(至少)转义输入以避免SQL注入。CodeIgniter可能有转义或使用参数化查询的功能,但至少您应该这样做:

$str = "Moscow";
$data = $ci->crud_model->query(
    'select * from "Cities" where  "defaultName" ilike  \'%'.pg_escape_string($str).'%\''
);
编辑根据Craig Ringer的评论,使用CodeIgniter逃避或构建安全查询的正确方法如下

这可能是最简单的(请注意,查询参数自动为字符串,不需要额外的引号):


LIKE
/
ILIKE
运算符将两个字符串作为其参数。也就是说,模式必须是带引号的字符串,而不仅仅是直接在SQL查询中

因此,不是:

"defaultName" ilike %Moscow%
你需要:

"defaultName" ilike '%Moscow%'
在PHP中,您应该(至少)转义输入以避免SQL注入。CodeIgniter可能有转义或使用参数化查询的功能,但至少您应该这样做:

$str = "Moscow";
$data = $ci->crud_model->query(
    'select * from "Cities" where  "defaultName" ilike  \'%'.pg_escape_string($str).'%\''
);
编辑根据Craig Ringer的评论,使用CodeIgniter逃避或构建安全查询的正确方法如下

这可能是最简单的(请注意,查询参数自动为字符串,不需要额外的引号):


我喜欢
?它是SQL
like
的更个人化版本吗?@CodeNewbie:只有PostGreSql提供关键字ILIKE,才能根据活动区域设置使匹配不区分大小写。@user2051503:请参阅我的答案我给出的ILIKE示例。。。希望你能理解,如果你真的把问题所指的错误的文本包括在内,这会更有用。始终这样做。另外,阅读并
我喜欢
?它是SQL
like
的更个人化版本吗?@CodeNewbie:根据活动区域设置,只有PostGreSql提供关键字ILIKE才能代替like使匹配不区分大小写。@user20