所以我正在运行错误检查,因为我的编辑帖子功能不起作用,这是我得到的消息
致命错误:未捕获mysqli_sql_exception:C:\ xampp \ htdocs \ Final \ Forum \ editpost.php中'字段列表'中的未知列'trewfh':55堆栈跟踪:#0 C:\ xampp \ htdocs \ Final \ Forum \ editpost.php(55):mysqli_query(Object(mysqli),'UPDATE hw7_foru ...')#1 C:\ xampp \ htdocs \ Final \ Forum \ editpost.php(39):editpost(72,'trewfh')在第55行的C:\ xampp \ htdocs \ Final \ Forum \ editpost.php中抛出#2
多么令人困惑的错误信息!它正好回应了我想要的东西(id = 72和随机字符串= trewfh)但是在更新我的帖子方面没有任何结果 . $ connectDB变量来自包含我的连接文件,并且普遍适用于所有地方而没有任何问题 . 我希望有人能看到我不是 . 谢谢你的时间和帮助!
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(-1); mysqli_report(MYSQLI_REPORT_ALL & ~MYSQLI_REPORT_INDEX);
include 'header.php';
include 'dbconnect.php';
//GATHER MY POST THAT MATCHES THE POST THE USER CLICKS TO EDIT AND DISPLAY TO THEM!
$sql = "SELECT forumpost_ID, forumpost_Text
FROM hw7_forumpost
WHERE forumpost_ID =" . mysqli_real_escape_string($connectDB, $_GET['eid']);
$result = mysqli_query($connectDB,$sql);
if(!$result){ echo 'Something went wrong, please try again later.'; }
else{
while($row = mysqli_fetch_array($result)){
echo'<form action="" method="post">';
echo'<div>';
echo'<textarea name="contents" rows="15" cols="50">'.$row[1].'</textarea>';
echo'</div><div>';
echo'<input type="submit" value="Add Post">';
echo'</div>';
}echo '</form>';
}
if(isset($_POST['contents'])){
$contents = trim($_POST['contents']);
editpost($_GET['eid'], $contents);
echo ('Your post has been updated!');
header('index.php');
die();
}
include 'footer.php';
/********************************************
edit function
**********************************************/
function editpost($id, $contents){
global $connectDB;
$id = (int)$id;
$contents = mysqli_real_escape_string($connectDB, $contents);
$sql = "UPDATE hw7_forumpost SET forumpost_Text=".$contents." WHERE forumpost_ID= ".$id;
$result = mysqli_query($connectDB, $sql);
}
?>
我的更新应该是说他的数据库更新hw7_forumpost SET forumpost_Text ='Trewfh'WHERE forumpost_ID =它通过$ _GET获取的正确ID . 它的阅读一切都很好,就像我说的那样回响 . 随之而来的是随机发生的事情
1 回答
正如大卫所指出的那样,忘记在呼叫内容之间放置一个简单的例子 . 谢谢David !!!!