SQL - 删除语句不起作用

时间:2015-09-11 20:56:43

标签: mysql sql mysqli

有人可以查看我的删除声明,让我知道为什么这可能不起作用?正如你所看到的那样,Add Statement也在这里...这完全有效...我在DELETE中交出了一个语句,它不起作用。

添加声明完美无缺:

<?php
include 'include/dbconnect.php';
$usr_id=$_POST['id'];
$usr_name=$_POST['username'];
$item_id=$_POST['itemid'];

$sql = "SELECT * FROM useritems where userid='$usr_id' And itemid='$item_id'";
$result = mysqli_query($conn, $sql);
//echo 'incoming data '.$result;
if (mysqli_num_rows($result) <1) {



$sql = "insert into useritems (userid,username,itemid) values ('$usr_id','$usr_name','$item_id')";
mysqli_query($conn, $sql);
echo 'success';
}
else
echo 'fail';

删除声明不会:

?>
<?php
include 'include/dbconnect.php';
$usr_id=$_POST['id'];
$usr_name=$_POST['username'];
$item_id=$_POST['itemid'];

$sql = "SELECT * FROM useritems where userid='$usr_id' And itemid='$item_id'";
$result = mysqli_query($conn, $sql);
//echo 'incoming data '.$result;
if (mysqli_num_rows($result) <1) {
    $sql = "DELETE FROM useritems WHERE userid='$usr_id' AND itemid='$item_id'";
    mysqli_query($conn, $sql);
    echo 'success';
}
else
echo 'fail';
?>

2 个答案:

答案 0 :(得分:0)

如果您发现num行少于1,则只进入DELETE语句。这意味着:no ROWS:

if (mysqli_num_rows($result) <1) {

将其更改为

if (mysqli_num_rows($result) >0) {

答案 1 :(得分:0)

您的DELETE语句没有问题,但如果它没有删除任何记录,那么WHERE条件WHERE userid='$usr_id' AND itemid='$item_id'与任何记录都不匹配。要验证它,请运行具有相同条件的SELECT

SELECT 1 FROM useritems WHERE userid='$usr_id' AND itemid='$item_id'
相关问题