Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅当存在某个URL时才删除最后一条记录_Php_Mysql - Fatal编程技术网

Php 仅当存在某个URL时才删除最后一条记录

Php 仅当存在某个URL时才删除最后一条记录,php,mysql,Php,Mysql,我的url为domain.com/abc?orderstatus=cancel 现在,当有人到达这个链接时,我想运行一个查询,从数据库中删除最后一条记录 这就是我所尝试的: <?php // Code here for the way to connect to database and insert records which works // Now I added this code so that only if its on the domain.com/abc?order

我的url为domain.com/abc?orderstatus=cancel

现在,当有人到达这个链接时,我想运行一个查询,从数据库中删除最后一条记录

这就是我所尝试的:

<?php 

// Code here for the way to connect to database and insert records which works

// Now I added this code so that only if its on the domain.com/abc?orderstatus=cancel url, it will delete the last record.
$orderstatus = $_GET['orderstatus'];

                if($orderstatus == 'cancel') {
                    $sql3 = "delete from table order by CustomerID desc limit 1";
                }


?>

然而,这对我不起作用。我能知道我做错了什么吗


ps:我试着删掉尽可能多的sql代码,使阅读变得容易。如果我丢失了任何信息,请一定要让我知道,我会把它放进去。

如果你想按顺序执行删除,那么你可能需要编写嵌套查询。如果按CustomerID desc limit 1从表order中删除
delete,则会出现SQL语法错误

<?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    $orderstatus = $_GET['orderstatus']; // check for sql injections or XSS

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    // sql to delete a record
    $sql = "DELETE FROM {YOUR TABLE_NAME} WHERE {YOUR WHERE CLAUSE} ";

    if ($conn->query($sql) === TRUE) {
        echo "Record deleted successfully";
    } else {
        echo "Error deleting record: " . $conn->error;
    }

    $conn->close();
?>

如果要在之前根据订单执行删除,则可能需要编写嵌套查询。如果按CustomerID desc limit 1从表order中删除
delete,则会出现SQL语法错误

<?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";

    $orderstatus = $_GET['orderstatus']; // check for sql injections or XSS

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    // sql to delete a record
    $sql = "DELETE FROM {YOUR TABLE_NAME} WHERE {YOUR WHERE CLAUSE} ";

    if ($conn->query($sql) === TRUE) {
        echo "Record deleted successfully";
    } else {
        echo "Error deleting record: " . $conn->error;
    }

    $conn->close();
?>

如果您对ID或其他内容进行了自动递增,则可以将MAX()用于MySQL。MAX()将删除指定字段中的最大数字

$sql3 = "DELETE FROM table_name 
         WHERE CustomerID = (SELECT x.id FROM (SELECT MAX(t.CustomerID) AS id FROM table_name t) x)";
//Execute that query
$query3 = mysqli_query($db_conn, $sql3);
如果您对ID进行了自动递增或其他操作,则可以对MySQL使用MAX()。MAX()将删除指定字段中的最大数字

$sql3 = "DELETE FROM table_name 
         WHERE CustomerID = (SELECT x.id FROM (SELECT MAX(t.CustomerID) AS id FROM table_name t) x)";
//Execute that query
$query3 = mysqli_query($db_conn, $sql3);

你有错误吗?你甚至没有执行sql。它是如何工作的?假设您实际上也尝试执行查询,而不仅仅是创建了一个字符串变量,那么您的服务器可能不知道如何单独处理对
/abc
的请求,所以可能正在进行一些URL重写?如果是这样,您是否确保在重写过程中传递原始查询字符串?否则,可能不会有一个
$\u GET['orderstatus']
作为开始。是否有任何错误?您甚至不执行该sql。它是如何工作的?假设您实际上也尝试执行查询,而不仅仅是创建了一个字符串变量,那么您的服务器可能不知道如何单独处理对
/abc
的请求,所以可能正在进行一些URL重写?如果是这样,您是否确保在重写过程中传递原始查询字符串?否则,可能没有一个
$\u GET['orderstatus']
开始。谢谢你,这有效,是的,你是对的,我需要打电话给它。谢谢,这有效,是的,你是对的,我需要打电话给它。