在我使用预准备语句来降低SQL注入风险后,单击按钮会使页面空白。我在代码中找不到任何错误。导致页面空白的原因是什么?我如何防止它发生?
if(isset($_POST['desc_btn'])) {
$code = mysqli_real_escape_string($con, strip_tags($_POST['code_desc']));
$desc = mysqli_real_escape_string($con, strip_tags($_POST['description']));
$code_select = $con->prepare("SELECT * FROM data WHERE code=?");
$code_select->bind_param("s", $code);
$code_select->execute();
$data = $code_select->get_result();
$data_user_id = $data['user_id'];
$data_id = $data['id'];
if($user_id == $data_user_id ) {
$code_select->close();
$update = $con->prepare("UPDATE data SET description=? WHERE id=?");
$update->bind_param('s', $desc, $data_id;
$update->execute();
$update->close();
}
}
error_reporting(E_ALL);
感谢您的帮助。我愿意接受任何意见。
答案 0 :(得分:0)
$update->bind_param()
行有语法错误。
type
的{{1}}字符以及右括号缺失。
更改为以下代码
$data_id
答案 1 :(得分:0)
error_reporting()函数将error_reporting指令设置为 运行。 PHP有许多级别的错误,使用此函数设置 脚本持续时间(运行时)的级别。如果是可选级别 未设置,error_reporting()将只返回当前错误 报告水平。
您应该在文件的开头调用此函数。
大多数E_STRICT错误都是在编译时评估的 在error_reporting增强的文件中不报告错误 包括E_STRICT错误(反之亦然)。