如果使用单引号,则mysql_query错误

时间:2012-07-20 12:00:34

标签: mysql mysql-error-1064

我想知道原因

$amzius_sql = "SELECT DISTINCT `Age` , SUBSTRING( Age, LOCATE( ' ', Age ) ) AS `AgePrefix` , SUBSTRING_INDEX( Age, ' ', 1 ) AS `AgeValue` FROM `suoPage` ORDER BY `AgePrefix` , `AgeValue` LIMIT 0 , 30";
$amzius_res = mysql_query($amzius_sql);

完美无瑕地工作,并且:

$amzius_sql = 'SELECT DISTINCT `Age` , SUBSTRING( Age, LOCATE( " ", Age ) ) AS `AgePrefix` , SUBSTRING_INDEX( Age, " ", 1 ) AS `AgeValue` FROM `suoPage` ORDER BY `AgePrefix` , `AgeValue` LIMIT 0 , 30';
$amzius_res = mysql_query($amzius_sql);

产生错误: '字段列表'中的未知列''

唯一的区别是报价。如果在phpMyAdmin中查询了两个查询 - 两者都有效,但只有第一个查询可以在PHP中使用mysql_query()进行查询

1 个答案:

答案 0 :(得分:2)

以下是解释:

  

ANSI_QUOTES模式使服务器解释双引号   字符串作为标识符因此,启用此模式时,   字符串文字必须用单引号括起来。他们   不能用双引号括起来。

Link