SQL命令语法错误?

时间:2015-01-04 04:52:21

标签: php mysql sql

我非常后悔问这么简单的问题,但它一直让我脱离困境,我不确定是不是因为更新或其他任何问题。但任何人都可以告诉我以下SQL语句的错误是什么?

$iname = mysql_query("SELECT * FROM calendarevents WHERE 'EventMonth'="January" AND 'EventDay'="1"")
or die(mysql_error());

5 个答案:

答案 0 :(得分:4)

这应该更好,使用正确的引号和反引号,请查看查询

$iname = mysql_query("SELECT * FROM calendarevents WHERE `EventMonth`= 'January' AND `EventDay`= 1 ")

<强>旁注:

请考虑使用PDOmysqli_代替mysql_ *函数。

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关详细信息,另请参阅MySQL: choosing an API guiderelated FAQ

答案 1 :(得分:2)

使用以下内容:

$iname = mysql_query("SELECT * FROM calendarevents WHERE {EventMonth {1}} {EventDay {1}}

你使用双引号(“)的方式是第一个也是最大的问题,你应该使用反引号(`)而不是单引号(')来转义mysql中的表名和列名。

答案 2 :(得分:2)

你不能在sql语句中使用双引号[&#34;]。

1月1日需要用单引号而不是双引号。

您也不需要围绕字段名称引用。

"SELECT * FROM calendarevents WHERE 'EventMonth'="January" AND 'EventDay'="1""

应该是

"SELECT * FROM calendarevents WHERE EventMonth='Januay' AND EventDay='1'"

答案 3 :(得分:0)

$iname = mysql_query("SELECT * FROM `calendarevents` WHERE `EventMonth`="January" AND `EventDay`=1")
or die(mysql_error());

答案 4 :(得分:0)

试试这个:

$query = "SELECT * FROM calendarevents WHERE EventMonth='January' AND EventDay = '1'";
$iname = mysql_query($query);