php - MySQL不删除记录

标签 php mysql

我正在尝试获取一个表单来删除表中的行,但我已经完成了除行删除之外的所有操作。它清除表中的所有值,但不会删除行或 ID。我已经尝试过提交

PHP 脚本

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Setting up the Database Connection
$servername = "localhost";
$username = "root";
$password = "Fh3dSWIWCLd4";
$dbname = "servers";
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//Capturing the POST Data
$id = $_POST['id'];

$sql = "DELETE FROM sv_info WHERE id='$id' LIMIT 1";

// Executing the SQL statement
if ($conn->query($sql) === TRUE) {
header("Location:http://osgaming.joec.pw/login/");
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
// Closing the database connection
$conn->close();
}
?>

HTML 表单

<?php include 'sql-dbsv-del.php'; ?>
<h2><b class="e">Delete Entries</b></h2> 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" class="form-group">
<label for="id">Database ID</label>
<input type="number" name="id" class="form-control" placeholder="Database ID"><br />
<input type="submit" value="Delete Entry" class="btn btn-danger">
</form>

https://gyazo.com/ca3f10f862b3993f5d716cb49242304b 有一个图像显示它对数据库中的变量所做的事情

最佳答案

学习基本的 PHP 字符串语法:

$sql = "DELETE FROM sv_info WHERE id='.$id.' LIMIT 1";
       ^--start of PHP string                       ^---end of PHP string

您正在生成文字查询字符串

DELETE FROM sv_info WHERE id='.4.' LIMIT 1

请注意,您对 PHP 字符串连接的错误尝试实际上是如何成为查询字符串的一部分的。您已经IN一个 php 字符串,因此您无法在该字符串内执行 PHP - PHP 不可递归嵌入/可执行。

其中任何一个都可以:

$sql = "DELETE FROM sv_info WHERE id='$id' LIMIT 1";
$sql = "DELETE FROM sv_info WHERE id='" . $id . "' LIMIT 1";

但是,当然,您仍然容易受到sql injection attacks的影响。 .

关于php - MySQL不删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790955/

相关文章:

php - mysql 中是否有任何预定义函数可以获取先前的值?

php - 正则表达式以匹配混合的阿拉伯语和数字

javascript - php 不解析来自 ajax 发送的 multipart/form-data 表单数据的数据

php - 如何防止此查询两次打印相同的结果?

php - 从 PHP 中的 SELECT 框中获取值

php - 如何检索最新的编号数据库中的第三条记录?

php - jQuery 验证单选按钮之间的条件条件

mysql - 使用MySQL而不是MySQLi的问题

MySQL:连接 HABTM 表,然后用结果计数更新列

php - 只计算彼此间隔 30 分钟的行数?