Php 删除与用户名相关的行
我已经回答了大多数类似的问题,但没有一个能解决我的问题。 我的表格有四列:id、用户名、标题和日期。我想在用户单击按钮(锚定标记)时删除与特定用户名关联的整行。请问,我如何做到这一点?这是我试过的密码 phpPhp 删除与用户名相关的行,php,mysqli,delete-row,Php,Mysqli,Delete Row,我已经回答了大多数类似的问题,但没有一个能解决我的问题。 我的表格有四列:id、用户名、标题和日期。我想在用户单击按钮(锚定标记)时删除与特定用户名关联的整行。请问,我如何做到这一点?这是我试过的密码 php <?php session_start(); $uname = $_SESSION['username']; $dbconn = mysqli_connect('localhost','root','','notesdb'); if(!$dbconn){ die("Connec
<?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>
上面的代码重定向了页面,但没有删除任何内容。删除查询中的
*
。语法只是:
DELETE FROM notes_log where username = ?
看
在多表DELETE
中,您需要将表名放在DELETE
之后,但是单个表DELETE
应该没有任何内容
当SQL操作失败时,您应该打印SQL错误消息,而不仅仅是无法准备SQL语句
echo "ERROR: could not prepare SQL statement: " . $dbconn->error;
编辑:mysqli\u close()
需要数据库连接作为其唯一参数
参考:
您需要使用mysqli\u close($dbconn)
是否检查mysqli\u错误?如果不重定向,您会看到什么?在$SESSION['username']
中有什么?(尝试使用var_dump()它需要检查值!你确定它包含正确的用户名吗?在单击按钮后脚本会显示任何错误消息吗?@Jeff我刚检查过,是的,我确实收到了错误消息,你知道可能是什么错误吗?错误消息是什么?星号不是DELETE使用的东西,只有选择can。References:---和a聚合函数,例如。我怀疑是这样,但没有尝试过。它成功了,谢谢这是一个副本。@FunkFortyner它可能是,但我有一个问题,我要求help@henrie巴尔马在这里已经有一段时间了,时间比我还长。然而,这并不意味着我也不能把一个问题当作重复的问题来解决。嗯,我觉得这个问题回答得更好我甚至可以提交我自己的副本,因为从来没有人提到过我有什么。你觉得Barmar是个什么好主意?;-)@FunkFortyNiner谢谢,我已经在我的规范副本列表中添加了DELETE*
问题。