Php 仅当存在某个URL时才删除最后一条记录
我的url为domain.com/abc?orderstatus=cancel 现在,当有人到达这个链接时,我想运行一个查询,从数据库中删除最后一条记录 这就是我所尝试的: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
<?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']
开始。谢谢你,这有效,是的,你是对的,我需要打电话给它。谢谢,这有效,是的,你是对的,我需要打电话给它。