没有线索的愚蠢 SQL 错误

Stupid SQL error with no leads

好吧,我不明白为什么这根本不起作用。

$get_data = mysql_query("SELECT * FROM chatbox ORDER BY ID WHERE message = 'bla'");
while($data = mysql_fetch_assoc($get_data)) {
*blablabla code*
}

这不起作用。它给了我

"Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource" error. (with line number ofcourse)

当我删除 "WHERE message = 'bla'" 部分时,它工作正常。尝试使用和不使用 ' bla 和消息周围的东西。消息字段确实存在于我的数据库中,条目 bla 也存在。即使在我的数据库中使用编号为 1 的 ID 字段进行尝试,它也根本不起作用。这行简单的代码有什么问题。几乎到处都找遍了,想不通...

您的查询有误。您正在使用 order by before where 条件。

试试这个查询:"SELECT * FROM chatbox WHERE message = 'bla' ORDER BY ID"

并且还从 mysql_* 迁移到 mysqli_*

您在 ORDER BY 后使用 WHERE 子句,它不适合您。

修改后的查询:

SELECT * FROM chatbox WHERE message = 'bla' ORDER BY ID

折痕需要按照这个顺序MYSQL SELECT声明:

SELECT .. COLUMNS .. FROM .. WHERE .. ORDER

SELECT Manual Reference

旁注:

请使用 mysqli_*PDO 而不是 mysql_* 因为此扩展已弃用并且在 PHP 7.

中不可用