检索聊天消息


Retrieving chat messages

我正在尝试从我的phpmyadmin数据库中获取聊天消息(其中有2条消息),但是我的查询有问题。在这里:

$query = "SELECT * FROM chat WHERE (user_from='". $_SESSION['username'] ."' AND user_to='". $result['username'] ."') OR (user_from='". $result['username'] ."' AND user_to='". $_SESSION['username'] ."') ORDER BY id DESC";
$chatlog = $db->query($query);
$message = $chatlog->fetch_array(MYSQLI_ASSOC);

运行此代码时:echo $message['message'];只显示第一条消息,我也尝试使用 foreach,但这似乎也不起作用。

你只得到一条消息,因为这就是fetch_array所做的 - 它以数组的形式获取下一条记录。

如果要获取多条记录,则需要遍历这些行并为每行调用fetch_array

while ($message = $chatlog->fetch_array(MYSQLI_ASSOC)) {
   $messages[] = $message;
}

此外,使用参数化查询或预准备语句来避免 SQL 注入

非常感谢伙计们,它在使用时有效fetch_all这是我现在的代码:

$query = "SELECT * FROM chat WHERE (user_from='". $_SESSION['username'] ."' AND user_to='". $result['username'] ."') OR (user_from='". $result['username'] ."' AND user_to='". $_SESSION['username'] ."') ORDER BY id DESC";
$chatlog = $db->query($query);
$message = $chatlog->fetch_all(MYSQLI_ASSOC);
foreach ($message as $chat) {
echo $chat['message'];
}