【发布时间】:2019-03-29 12:00:27
【问题描述】:
我已经解决了大多数与此类似的问题,但没有一个解决我的问题。 我的表格有四列:id、username、title 和 date。当用户单击按钮(锚标记)时,我想删除与特定用户名关联的整行。请问,我该如何实现?这是我试过的代码。
php
<?php
session_start();
$uname = $_SESSION['username'];
$dbconn = mysqli_connect('localhost','root','','notesdb');
if(!$dbconn){
die("Connection failed:". mysqli_connect_error($dbconn));
}
if($stmt = $dbconn->prepare("DELETE * FROM notes_log where username = ? ")){
$stmt->bind_param("s",$uname);
$stmt->execute();
$stmt->close();
}else{
echo "ERROR: could not prepare SQL statement.";
}
mysqli_close();
// redirect user after delete is successful
header("Location: index.php");
?>
HTML
<a href="deleteAll.php" onclick="return confirm('Are you sure?')">Delete all</a>
上面的代码重定向了页面,但没有删除任何内容。
【问题讨论】:
-
你检查过 mysqli_error 吗?不重定向时会看到什么?
-
$SESSION['username']里面有什么? (尝试 var_dump() 来检查它的值!您确定它包含正确的用户名吗?单击按钮后脚本会显示任何错误消息? -
@Jeff 我刚刚检查过,是的,我确实收到了错误消息,你知道可能出了什么问题吗?
-
错误信息是什么?
-
星号不是 DELETE 使用的东西,只有 SELECT 可以。参考:dev.mysql.com/doc/refman/8.0/en/delete.html --- dev.mysql.com/doc/refman/8.0/en/select.html 和聚合函数,例如
COUNT()。
标签: php mysqli delete-row