【发布时间】:2016-01-31 02:01:22
【问题描述】:
我一直在尝试从我的数据库中删除一行,但它一直显示我已删除而没有删除任何内容,请有人知道我的代码有什么问题
我尝试过使用 PDO 和 mysql 但没有删除但会显示已删除 我不知道该怎么办了。
MYSQL
if($user == $me){
$sql_delete = "DELETE FROM replys WHERE id = '$id' AND rusername = '$me'";
echo $sql_delete;
mysql_query($sql_delete) or die(mysql_error());
echo "Deleted";
}
else{
}
}
?>
PDO
<?php
session_start();
if(isset($_POST['DeleteThis'])){
$db_host = "localhost";
$db_user = "root";
$db_pass = "kindom";
$db_name = "posters";
try {
$user = $_SESSION['username'];
$form = $_POST;
$id = $form['id']);
$me = $form['me'];
if($me == $user){
$db_conn = new PDO("mysql:host={$db_host};dbname={$db_name}",$db_user,$db_pass);
$db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $db_conn->prepare("DELETE FROM replys WHERE id = :id AND rusername = :user");
//I have tried using this SQL statements
//$query = "DELETE FROM replys WHERE id = {$id} AND rusername = {$user}";
//$query = "DELETE * FROM replys WHERE id = :id AND rusername = :rusername";
$query = "DELETE FROM replys WHERE id = :id AND rusername = :rusername";
$stmt->bindParam(':id', $id);
$stmt->bindParam(':rusername', $user);
$stmt->execute();
echo "Deleted";
}
else{
//Do nothing
}
}
catch(PDOException $e)
{
echo "Error:" . $e->getMessage();
}
$db_conn = null;
}
?>
HTML
<a href="javascript:void(0);" onclick="document.getElementById('deleterp').submit();"><i style="font-size:17px;color:#F00;" class="fa fa-trash"></i></a>
<form id="deleterp" action="" method="POST">
<input type="hidden" name="id" value="<?php echo $rpId;?>"/>
<input type="hidden" name="DeleteThis" value="1"/>
<input type="hidden" name="me" value="<?php echo $rplyuser;?>"/>
</form></div>
【问题讨论】:
-
删除查询没有准备好?和弗雷德提到的声明。
-
非常仔细地查看
DELETE replys并将其与手册所述dev.mysql.com/doc/en/delete.html 的内容进行比较,正如@MarkNg 所述,阅读手册php.net/pdo.prepared-statements -
@MarkNg 如果它成功了。 ^ 见上文 ;-) 我们都编辑过。
-
那么现在你确定现在的代码是正确的吗?你有没有运行它并测试是否有任何错误? @ Fred,在想,因为他设法回显“已删除”......嗯......声明说 rusername = :user 但 bindParam 是 ':rusername'......我建议你先阅读手册,链接正如@Fred-ii- 在上面发布的那样。我也很纳闷为什么没有抛出异常
-
@MarkNg About not throwing an exception for their issue类似于stackoverflow.com/q/35020308这个问题,里格斯和我最近都发布了一个答案。所以这里的情况可能非常相似。在深入了解手册之前,我的回答更像是一个有根据的猜测。