这是我输入两个文本字段,发件人和邮件的代码。但是,我的网页一直给我这个错误:警告:mysql_fetch_assoc()期望参数1是资源,布尔值在C:\ Users \ Administrator \ Desktop \ xampp \ htdocs \ Chat \ includes \ Functions \ Chat.func.php中给出第11行。请帮帮我。我环顾四周,大多数人都说这个错误发生的原因可能是$ query不正确。但是,我的db_name和tbl_name是正确的,$ query中的其他所有内容都是正确的。
function get_msg(){
$query = "SELECT 'Sender', 'Message' FROM 'db_name'.'tbl_name'";
$run = mysql_query($query);
$messages = array();
while($message = mysql_fetch_assoc($run)){
$message[] = array('sender' => $message['Sender'],
'message' => $message['Message']);
}
return $messages;
}
答案 0 :(得分:3)
用反引号替换撇号:
$query = "SELECT `Sender`, `Message` FROM `db_name`.`tbl_name`";
Apostrophes表示SQL中的字符串常量,而MySQL使用反引号来转义字段或表等内部名称,以防它们与保留字冲突。在这种情况下,您的查询实际上也可以在没有任何反引号的情况下正常工作。
第二个关闭,显示mysql错误会向您显示此信息(将or die(mysql_error())
附加到代码查询行),或者实际上将查询复制/粘贴到phpMyAdmin中。
最后,mysql_query
系列函数为deprecated as of PHP 5.5。你应该switch to PDO or mysqli代替。
答案 1 :(得分:1)
1)mysql_query失败并返回false。 2)使用mysqli扩展名。不推荐使用mysql_ *。 3)使用反引号而不是单引号
您需要使用backticks
代替“单引号”。否则你只是选择字符串。列,数据库和表名也是如此。这就是假设存在列,数据库和表的情况下您的查询失败的原因。