准备好的语句PHP之后的空白页

时间:2017-06-03 05:51:27

标签: php mysqli prepared-statement bindparam

在我使用预准备语句来降低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); 

感谢您的帮助。我愿意接受任何意见。

2 个答案:

答案 0 :(得分:0)

$update->bind_param()行有语法错误。

type的{​​{1}}字符以及右括号缺失。

更改为以下代码

$data_id

答案 1 :(得分:0)

  

error_reporting()函数将error_reporting指令设置为   运行。 PHP有许多级别的错误,使用此函数设置   脚本持续时间(运行时)的级别。如果是可选级别   未设置,error_reporting()将只返回当前错误   报告水平。

您应该在文件的开头调用此函数。

  

大多数E_STRICT错误都是在编译时评估的   在error_reporting增强的文件中不报告错误   包括E_STRICT错误(反之亦然)。