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

标签 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');
?>

最佳答案

根据 DELETE Syntax 上的手册:

Subqueries

You cannot delete from a table and select from the same table in a subquery.

所以你应该这样做:

DELETE FROM minichat ORDER BY id DESC LIMIT 1

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

关于php - 使用php删除mysql中id最高的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40021770/

相关文章:

java - Derby - java.sql.SQLException : Column 'table.column_name' not found

database - 改变模式生成器中的列长度?

php - 使用 array_fill 创建对象数组时如何使每个对象唯一?

mysql - 我需要将当前有 10 亿条记录的数据库的数据类型从 float 更改为十进制

php - 加载 xml infile mysql

node.js - 查询时间 mongoose 偶尔需要 3-4 秒

java - 尝试通过控制台浏览类时出现 OrientDB 错误

php - R 和 PHP 之间的集成

php - 在 SSL 中如何优雅地处理重定向到 http 的 https URL 的 IMG src

php - 在指定索引处将行插入到 SQL 表中