SQL 命令语法错误?

SQL Command Syntax Error?

我绝对后悔问了这么简单的问题,但它一直让我崩溃,我不确定是因为更新还是其他原因。但是谁能告诉我以下 SQL 语句的错误是什么?

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

使用以下内容:

$iname = mysql_query("SELECT * FROM calendarevents WHERE活动月='January' AND活动日='1'") or die(mysql_error());

您使用双引号 (") 的方式是第一个也是最大的问题,您应该使用反引号 (`) 而不是单引号 (') 来转义 table 和列名在 mysql.

您不能在 sql 语句中使用双引号 ["]。

january 和 1 需要用单引号而不是双引号。

您也不需要在字段名称周围加上引号。

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

应该是

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

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

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

旁注:

请考虑使用 PDO or mysqli_ 而不是 mysql_* 函数。

此扩展已从 PHP 5.5.0 开始弃用,将来会被删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展名。另请参阅 MySQL: choosing an API guide and related FAQ 了解更多信息。

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

试试这个:

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