Обновление 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, который не содержит текст ошибки. Если на самом деле вы не можете подключиться туда, ваш скрипт умирает с самого начала без вывода. Это также будет причиной проблемы.

Другие вопросы по тегам