使用php删除mysql中id最高的行

Gui*_*ade 1 php mysql database sql-delete

我正在研究一个非常简单的minichat程序(php/mysql),它显示最后10条消息.

我想添加一个按钮来删除最后一条消息(使用表单,导致php文件类似下面的文件).

我真的有一个初学者phpmysql是这样,我不明白为什么这是行不通的.

按照我的代码:

<?php 
    // Create connection
    $cn = new mysqli("localhost","root","","test");

    // Check connection
    if($cn->connect_error)
    {
        echo "Connection failed : " . $cn->connect_error;
    }

    $sql = "DELETE FROM `minichat` WHERE `minichat`.`id` = ('SELECT MAX(`id`) FROM `minichat`')";

    if($cn->query($sql) === TRUE){
            echo "Deleted succesfully";
    }
    else
    {
        echo "Error deleting record: " . $cn->error;
    }

    //header('Location: connexion.php');
?>
Run Code Online (Sandbox Code Playgroud)

jer*_*oen 5

根据DELETE语法手册:

子查询

您无法从表中删除并从子查询中的同一表中进行选择.

所以你应该这样做:

DELETE FROM minichat ORDER BY id DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

你可能想要一个条件来确保用户只能删除他/她自己的评论..