2013-12-05 3 views
1

Я пытаюсь заменить мой MySQL с MySQLi, и я получаю результаты - это нормально, но когда дело доходит до обновления MySQL мой код не удается (я обновил только часть MySQL)Обновление MySQLi и die(); и exit(); не работает

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'); 
} 

кажется, что умирает(); Выход(); или любые другие ошибки, которые не работают в, если статья

+0

Интересно, сколько времени понадобится местным специалистам для решения этой невероятной проблемы. –

+0

Используйте isset для этого POST – Mihai

+0

$ costAlertVar, $ userConnection, вероятно, один или оба не установлены. – Mihai

ответ

0

линии $eintrag->error(); {die('Not Working');} умрёт каждый раз, даже если бы все было хорошо, потому что PHP будет видеть заявление $eintrag->error() и блок кода {die('Not Working');}.

Вы должны использовать, как это:

if (!$eintrag->error()) { die('Not Working'); } 
+0

thx, я обновил код, но это не проблема. все еще не работает – user2987790

0

Doesnt это значит, если ошибка не умереть

if (!$eintrag->error()) { die('Not Working'); } 

Удалите!

+0

Я просто читал это, и вы правы. –

+0

ОК, я удалил это, но дело в том, что я не получаю ошибок в этом объявлении if. я попытался с die(); Выход(); и т. д. Все проверки перед sql работают правильно. – user2987790

+0

@ user2987790 Эхо $ sql. – Mihai

0

Thx за вашу помощь, я перепробовал все ваши советы, но вдруг он работал

$sql = "UPDATE ".$dbprfx."_users SET costAlertVar = ? WHERE connection = ?"; 
$eintrag = $db->prepare($sql); 
$eintrag->bind_param('ss',$costAlertVar,$userConnection); 
$eintrag->execute(); 
$eintrag->close(); 
0

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

Смежные вопросы