Я пытаюсь создать событие, используя mysqli подготовленный оператор, но код не работает. Я узнал, что, когда я помещаю оператор mysqli внутри подготовленного оператора в какое-то предложение, такое как ON, WHERE, SET, AND, UPDATE, все становятся красными в цвет Я пытался понять это, но еще нет, и код не работает, мне нужен кто-то, чтобы исправить мой код.
$d_sql = $connect->prepare("CREATE EVENT stop_fad_1 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE ON COMPLETION PRESERVE DO UPDATE fad SET active_status=? WHERE fad_id=? AND sender=? AND reciever=?");
$d_sql->bind_param("iiii",$complete_status,$fad_id,$sender,$reciever);
$d_sql->execute();
то я получаю ошибку, как это, но я проверил мои данные, которые я представил в утверждение, что все они правильные
Fatal error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\Alertmedia\fad\php\comfirm_gp_fad.php on line 35
CREATE VIEW
не поддерживается в подготовленном заявлении.
https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html перечисляет операторы SQL, которые могут использоваться в подготовленных операциях.
Вам нужно будет интерполировать переменные в оператор CREATE EVENT перед его анализом. Это означает, что вы должны быть осторожны, чтобы переменные включали только ожидаемый формат (например, целое число).
$complete = (int) $complete;
fad_id = (int) $fad_id;
$sender = (int) $sender;
$reciever = (int) $reciever;
$d_sql = $connect->query("
CREATE EVENT stop_fad_1 ON SCHEDULE
AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
ON COMPLETION PRESERVE
DO
UPDATE fad SET active_status=$complete_status
WHERE fad_id=$fad_id AND sender=$sender AND reciever=$reciever
");