这个问题是非常基本的,我在stackoverflow中发现了许多类似的问题,但是没有一个问题适合我.
我设计了一个表,将显示如下数据:
ID name Delete
1 abc Delete
2 def Delete
上面显示的代码是
$con=mysqli_connect("abc","abc","abc","abc");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM student");
echo "
IDnamedelete";
while($row = mysqli_fetch_array($result))
{
echo "
";echo "
";echo "
" . $row['id'] . "";echo "
" . $row['name'] . "";echo "
Delete";echo "
";echo "
";}
echo "
";mysqli_close($con);
?>
delete.php的代码
$con=mysqli_connect("abc","abc","abc","abc");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"DELETE FROM student WHERE id='$id'");
mysqli_close($con);
header("Location: index.php");
?>
数据库视图为
Id name
1 abc
2 cdf
问题是它没有删除数据,也没有显示任何错误
我是这个领域的新手,如果有人可以帮助我,将不胜感激
解决方法:
更改此行:
echo "
Delete";至
echo "
Delete";然后是delete.php(并且如注释中最初所述,未定义$id).
$con=mysqli_connect("abc","abc","abc","abc");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_GET['id']; // $id is now defined
// or assuming your column is indeed an int
// $id = (int)$_GET['id'];
mysqli_query($con,"DELETE FROM student WHERE id='".$id."'");
mysqli_close($con);
header("Location: index.php");
?>
它会工作.
这是一个准备好的语句示例:
$DB_HOST = "xxx";
$DB_NAME = "xxx";
$DB_USER = "xxx";
$DB_PASS = "xxx";
$con = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($con->connect_errno > 0) {
die('Connection failed [' . $con->connect_error . ']');
}
$id = (int)$_GET['id'];
$update = $con->prepare("DELETE FROM student WHERE id = ?");
$update->bind_param('i', $id);
$update->execute();
$update->close();
标签:mysqli,sql,mysql,php
来源: https://codeday.me/bug/20191029/1957435.html