Php MySQLi更新和死亡();和退出();不起作用

Php MySQLi更新和死亡();和退出();不起作用,php,mysql,mysqli,exit,die,Php,Mysql,Mysqli,Exit,Die,我试图用MySQLi替换我的MySQL,我得到了结果——没关系,但是当更新MySQL时,我的代码失败了(我只更新了MySQL部分) inc\u mysql\u connect.php $db = mysqli_connect($host, $user, $pass, $dbase) or die (); if($_POST['costAlertTrue'] != "") { // CHECKS AND IF ERROR - REDIRECT BACK if(..) {$_SESSION['

我试图用MySQLi替换我的MySQL,我得到了结果——没关系,但是当更新MySQL时,我的代码失败了(我只更新了MySQL部分)

inc\u mysql\u connect.php

$db = mysqli_connect($host, $user, $pass, $dbase) or die (); 
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
inc\u global\u functions.php

$db = mysqli_connect($host, $user, $pass, $dbase) or die (); 
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');
}
似乎死了;退出();或者任何其他错误在if子句中不起作用

$eintrag->error();{die('notworking');}
每次都会死掉,即使一切正常,因为PHP将看到语句
$eintrag->error()
和代码块
{die('notworking');}

您应该这样使用:

if (!$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语句,会发生什么情况?我已经让它变得相当简单,只要您正确地传递$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

我还注意到,您在mysqlic_connect语句中使用了一个or die语句,该语句不包含错误文本。如果事实上您无法连接到那里,那么您的脚本将在开始时死亡,并且没有输出。这也是问题的原因。

thx,我更新了代码,但这不是问题所在。我删除了它,但问题是:在整个if语句中没有错误。我试着用模具;退出();等等。sql之前的所有检查都正常工作。@user2987790回显$sql.Echo$sql;模具();退出();不工作,所以我做了:标题(“位置:$sql”);它给了我:更新cms_用户设置costAlertVar=?WHERE connection=?我想知道本地专业人士要花多长时间才能解决这个令人难以置信的问题。对那个帖子使用isset$costAlertVar,$userConnection可能一个或两个都没有设置。我尝试了if(isset($\u POST['costAlertTrue']){..,但仍然没有任何结果,但我可以得到标题位置和$var的错误