【问题标题】:unable to delete from database with php [duplicate]无法使用php从数据库中删除[重复]
【发布时间】:2017-04-13 09:12:49
【问题描述】:

没有从数据库中删除数据。我可以添加和查看。

如果我输入print_r($submissions);,我可以看到我的数据。例如。 Array ( [0] => 2 ) $count++; 始终显示 0 ,除非我将计数放在 if 语句之外。 echo "we got an error <br>"; 将显示与要删除的提交一样多的次数。我测试了 SQL 查询,效果很好。不知道现在该去哪里,所以任何帮助表示赞赏。相关代码如下:

型号:

function deleteSubmission($conn,$submission_id)
{
    $query = "DELETE FROM submissions WHERE submission_id=:submission_id";
    $stmt = $conn->prepare($query);
        $stmt->bindValue(':submission_id',$submission_id);
    $affected_rows = $stmt->execute();
    if($affected_rows==1)
    {
            //echo $affected_rows;
            echo ($affected_rows) ? "true" : "false";
            echo " working ";
        return true;
    }else{
        //echo $affected_rows;
            echo ($affected_rows) ? "true" : "false";
            echo " not working ";   
            return false;
    }
}

控制器:

//they didn't submit the form
if(!isset($_POST["deleteSubmissionsBtn"]))
{
    header("Location:all-submissions-delete.php");
    exit;
}

$msg;
//validate
if(isset($_POST['submissions']))
{
    $submissions=$_POST['submissions'];
    $conn=getConn();
    $count=0;
    foreach ($submissions as $submission_id) 
    {   


        if(deleteSubmission($conn,$submission_id))
        {
            $count++;
        }
                else{
                    echo "we got an error <br>";
                }

    }
        print_r($submissions); 
        //echo $submission_id;

    $conn=NULL;
    $msg="Successfully deleted $count submissions";
}else{
    $msg="You need to select some submissions to delete";
}

include("views/delete-feedback-view.php")

?>

查看:

echo "<form action='delete-submissions.php' method='POST'>";
foreach($allSubmissions as $submission)
{
    echo "<div>";
    echo "<label>".$submission->title."</label>";
    echo "<input type='checkbox' value='".$submission->submission_id."' name='submissions[]'/>";
    echo "</div>";
}
echo "<input type='submit' name='deleteSubmissionsBtn' value='delete submissions'>";
echo "</form>";

【问题讨论】:

标签: php arrays pdo sql-delete


【解决方案1】:

感谢 tilz0R 和 Magnus Eriksson。

我按照建议检查了错误并得到了Array ( [0] =&gt; 00000 [1] =&gt; [2] =&gt; )

我添加了PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING,这就是我找到答案的地方......

PDOStatement::execute(): SQLSTATE[42000]: 语法错误或访问 违规:1142 DELETE 命令拒绝用户 ...

我现在知道问题所在,可以着手解决了。再次感谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2021-05-13
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多