从服务器删除行时遇到问题

Posted

技术标签:

【中文标题】从服务器删除行时遇到问题【英文标题】:Having an issue deleting rows from server 【发布时间】:2019-03-28 19:38:40 【问题描述】:

所以简而言之,当我运行代码时,我无法让我的代码从我的数据库表“tblsurvey”中删除行,但没有显示错误,并且它似乎正确执行了语句但是在检查表时我找到了行没有被删除。

<?php //set a question from the database V1.0
require '../configure.php'; //required to connect to the DB
//initialising variables
    $qID = ''; //question ID
    $dropDown = ''; //drop down box
    $startSelect = '<select name=drop1>'; //initial value of select
    $endSelect = '</select>'; //end of select
    $fullhtml = ''; //display the dropdown menus options
    $getDropdownID = ''; //on button submit grabs the UID for the questionairre
    $hiddenTag = '';

    $DB = "questonaire"; //must match Database
    $db_isFound = new mysqli(DB_SERVER, DB_USER, DB_PASS, $DB); //connecting to the database see ../configure.php for details 

    //checking if button as been pressed -- needs to redirect to the appropriate questionaire on pressed
    if (isset($_GET['submit']))
     //initialising the selected questionaire ID  
        $getDropdownID = $_GET['drop1'];
        //display the selected questionaire
        if ($db_isFound)
            $SQL = "DELETE FROM tblsurvey WHERE ID = ?";
            $SQL_stmt = $db_isFound->prepare($SQL);
            if($SQL_stmt)
                $SQL_stmt->bind_param("s", $qID);
                $SQL_stmt->execute();
                print("question has been successfully removed from the database.");

            else
                print("There was a problem running your query: row not deleted");
            

        else
           print("error connecting to DB: Question not deleted");
        
     

正确输出并显示

print("question has been successfully removed from the database.");

但是该行并未从表中删除。

任何帮助将不胜感激。

【问题讨论】:

执行后,echo $SQL_stmt-&gt;affected_rows;是什么?您确定$qID 匹配数据库中的记录吗? $qID 在此代码中仅分配给空字符串 在输出该消息之前,您没有检查 execute() 调用的结果(或捕获异常)。所以你实际上对查询是否成功没有任何感觉。 错误检查 但如果您不介意,请将 ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 添加到脚本顶部。这将强制任何 mysqli_ 错误生成您可以在浏览器上看到的异常以及正常的 PHP 错误。 @user3407086 什么SQL 这个sql $SQL = "DELETE FROM tblsurvey WHERE ID = ?"; 【参考方案1】:

在这一行

$SQL_stmt->bind_param("s", $qID);

$qID 替换为$getDropdownID,因为我看不到$qID 的价值所在。

【讨论】:

是的,谢谢你,我在你回复前 5 分钟意识到了这一点。谢谢你的帮助。【参考方案2】:

感谢您查看我有一点脑子放屁,并在准备好的声明中调用了错误的 var 修复是

$SQL_stmt->bind_param("i", $getDropdownID);

【讨论】:

以上是关于从服务器删除行时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中选择行时删除标签背景颜色

从 RootViewController 类外部删除RowsAtIndexPaths

添加到自定义部分标题视图的按钮在删除行时消失

使用 PDO 匹配数据库中的行时遇到问题

如何清除 OBIEE 游标缓存(演示服务器)

从数组中删除数据时遇到问题