Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.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 Mysql查询错误_Php_Mysql - Fatal编程技术网

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
表是什么样子的?