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逃避或构建安全查询的正确方法如下
这可能是最简单的(请注意,查询参数自动为字符串,不需要额外的引号):
我喜欢
?它是SQLlike
的更个人化版本吗?@CodeNewbie:只有PostGreSql提供关键字ILIKE,才能根据活动区域设置使匹配不区分大小写。@user2051503:请参阅我的答案我给出的ILIKE示例。。。希望你能理解,如果你真的把问题所指的错误的文本包括在内,这会更有用。始终这样做。另外,阅读并我喜欢?它是SQLlike
的更个人化版本吗?@CodeNewbie:根据活动区域设置,只有PostGreSql提供关键字ILIKE才能代替like使匹配不区分大小写。@user20