Php Mysql查询错误
这个查询有什么问题Php Mysql查询错误,php,mysql,Php,Mysql,这个查询有什么问题 $query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE $orase") or die(mysql_error()); 此代码返回 Unknown column 'Bucuresti' in 'where clause' $orase需要加引号 $query2=mysql_query("SELECT * FROM $t_medici WHERE oras LIKE '$orase'") or die(m
$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE $orase") or die(mysql_error());
此代码返回
Unknown column 'Bucuresti' in 'where clause'
$orase
需要加引号
$query2=mysql_query("SELECT * FROM $t_medici WHERE oras LIKE '$orase'") or die(mysql_error());
$orase
需要加引号
$query2=mysql_query("SELECT * FROM $t_medici WHERE oras LIKE '$orase'") or die(mysql_error());
将
$orase
放在单引号内。
如果需要,请使用%symbol。将
$orase
放在单引号内。
如果需要,请使用%symbol。如果
oras
字段是字符串,则$orase
应在其周围加上单引号:
$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE '$orase'") or die(mysql_error());
当到达此行时,变量$orase
包含字符串Bucuresti
,因此SQL代码的结尾如下:
...WHERE `oras` LIKE Bucuresti
但您也应该避开它(以防止SQL注入):
此外,我在双引号字符串中的任何其他变量周围加上大括号,即{$t_medici}此处:
$query2=mysql_query("SELECT * FROM {$t_medici} WHERE `oras` LIKE '".mysql_real_escape_string($orase)."'") or die(mysql_error());
另一方面,如果您将
LIKE
与类似的字符串一起使用,则返回的任何行都必须是Bucuresti
(或$orase包含的任何内容),前后都不能有任何内容(包括空格!)。在这种情况下,像一样使用是没有意义的;您也可以这样使用=
:
"SELECT * FROM {$t_medici} WHERE `oras` ='".mysql_real_escape_string($orase)."'"
"SELECT * FROM {$t_medici} WHERE `oras` LIKE '%".mysql_real_escape_string($orase)."%'"
但是,如果您想以某种方式匹配oras
字段中包含Bucuresti
(或$orase包含的任何内容)的任何行(例如“Bucuresti”、“Bucuresti”、“kdsbks kksd saBucurestie”等),则应使用%
,如下所示:
"SELECT * FROM {$t_medici} WHERE `oras` ='".mysql_real_escape_string($orase)."'"
"SELECT * FROM {$t_medici} WHERE `oras` LIKE '%".mysql_real_escape_string($orase)."%'"
也就是说,%Bucuresti%
如果$orase
要保持Bucuresti
如果oras
字段是字符串,则$orase
应该在其周围有单引号:
$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE '$orase'") or die(mysql_error());
当到达此行时,变量$orase
包含字符串Bucuresti
,因此SQL代码的结尾如下:
...WHERE `oras` LIKE Bucuresti
但您也应该避开它(以防止SQL注入):
此外,我在双引号字符串中的任何其他变量周围加上大括号,即{$t_medici}此处:
$query2=mysql_query("SELECT * FROM {$t_medici} WHERE `oras` LIKE '".mysql_real_escape_string($orase)."'") or die(mysql_error());
另一方面,如果您将LIKE
与类似的字符串一起使用,则返回的任何行都必须是Bucuresti
(或$orase包含的任何内容),前后都不能有任何内容(包括空格!)。在这种情况下,像
一样使用是没有意义的;您也可以这样使用=
:
"SELECT * FROM {$t_medici} WHERE `oras` ='".mysql_real_escape_string($orase)."'"
"SELECT * FROM {$t_medici} WHERE `oras` LIKE '%".mysql_real_escape_string($orase)."%'"
但是,如果您想以某种方式匹配oras
字段中包含Bucuresti
(或$orase包含的任何内容)的任何行(例如“Bucuresti”、“Bucuresti”、“kdsbks kksd saBucurestie”等),则应使用%
,如下所示:
"SELECT * FROM {$t_medici} WHERE `oras` ='".mysql_real_escape_string($orase)."'"
"SELECT * FROM {$t_medici} WHERE `oras` LIKE '%".mysql_real_escape_string($orase)."%'"
也就是说,%Bucuresti%
如果$orase
持有Bucuresti
从internet复制查询并编辑查询时出现非常常见的错误。上面突出显示的单引号。从internet复制查询并编辑查询时出现非常常见的错误。上面突出显示的单引号。您的问题不清楚…SQL注入漏洞是此查询的错误所在。t\u medici
表是什么样子的?您的问题不清楚…SQL注入漏洞是此查询的错误所在。t\u medici
表是什么样子的?