Обновление MySQLi и die(); и выход (); не работает
Я пытаюсь заменить MySQL MySQLi, и я получаю результаты - это нормально, но когда дело доходит до обновления MySQL, мой код завершается ошибкой (я обновил только часть MySQL)
inc_mysql_connect.php
$db = mysqli_connect($host, $user, $pass, $dbase) or die ();
inc_global_functions.php
if($_POST['costAlertTrue'] != "") {
// CHECKS AND IF ERROR - REDIRECT BACK
if(..) {$_SESSION['status'] ="E1"; header("Location: ./?page=cAlert"); exit();}
if(..) ...
// SQL
$sql = "UPDATE ".$dbprfx."_users SET costAlertVar = ? WHERE connection = ?";
$eintrag = $db->prepare($sql);
if ($eintrag->error()) { print($eintrag->error()); }
$eintrag->bind_param('ss',$costAlertVar,$userConnection);
$eintrag->execute();
$eintrag->close();
// REDIRECT
$_SESSION['status'] ="on"; header("Location: ./?page=cAlert");
} // End
Может ли кто-нибудь найти ошибку в этом куске кода?
уведомление
if($_POST['costAlertTrue'] != "") {
die('XX'); exit('XX');
}
Кажется, что die(); выход(); или любые другие ошибки не работают в предложении if
4 ответа
Линия $eintrag->error(); {die('Not Working');}
умрет каждый раз, даже если бы все было хорошо, потому что PHP увидит утверждение $eintrag->error()
и блок кода {die('Not Working');}
,
Вы должны использовать это так:
if (!$eintrag->error()) { die('Not Working'); }
Спасибо за вашу помощь, я попробовал все ваши советы, но вдруг это сработало
$sql = "UPDATE ".$dbprfx."_users SET costAlertVar = ? WHERE connection = ?";
$eintrag = $db->prepare( $sql );
$eintrag->bind_param('ss',$costAlertVar,$userConnection);
$eintrag->execute();
$eintrag->close();
Разве это не значит, что если нет ошибки
if (!$eintrag->error()) { die('Not Working'); }
Удалить!
Что произойдет, если вы замените свой главный оператор if следующим? Я сделал это довольно просто, поэтому, пока вы правильно передаете переменную $ db, это должно вернуть вам НЕКОТОРЫЕ результаты.
if($_POST['costAlertTrue'] != "") {
// CHECKS AND IF ERROR - REDIRECT BACK
if(..) {$_SESSION['status'] ="E1"; header("Location: ./?page=cAlert"); exit();}
if(..) ...
// SQL
$sql = "UPDATE ".$dbprfx."_users SET costAlertVar = ? WHERE connection = ?";
//$eintrag = $db->prepare($sql);
//if ($eintrag->error()) { print($eintrag->error()); }
if($db->connect_errno > 0){
die("Error connecting to db.");
}
//$eintrag->bind_param('ss',$costAlertVar,$userConnection);
//$eintrag->execute();
if(!$result = query($sql)){
die("Error running query");
}
//$eintrag->close();
$db->close();
// REDIRECT
$_SESSION['status'] ="on"; header("Location: ./?page=cAlert");
} // End
Также я заметил, что вы используете оператор или die в вашем операторе mysqlic_connect, который не содержит текст ошибки. Если на самом деле вы не можете подключиться туда, ваш скрипт умирает с самого начала без вывода. Это также будет причиной проблемы.