所以简而言之,我在让我的代码从我的数据库表"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.");
但是,不会从表中删除该行。
任何帮助都将不胜感激。
发布于 2019-03-28 19:47:54
在这条线上
$SQL_stmt->bind_param("s", $qID);
将$qID
替换为$getDropdownID
,因为我看不出$qID
从哪里获得值。
发布于 2019-03-28 20:09:24
谢谢你看了一下,我有点胡思乱想,在准备好的语句中调用了错误的var修复方法是
$SQL_stmt->bind_param("i", $getDropdownID);
https://stackoverflow.com/questions/55405637
复制