Php 如何检查语句执行时是否有错误?

Php 如何检查语句执行时是否有错误?,php,Php,我需要某种错误处理,如果语句执行时出错,则将布尔变量设置为false 或者,如果运行时没有错误,则将布尔值设置为true 在我的情况下,我的代码是 $response = array(); $response["success"] = true; $statement = $mysqli->prepare("INSERT INTO userft (name, username, pasword, email, contact, age) VALUES (?, ?, ?, ?, ?, ?)

我需要某种错误处理,如果语句执行时出错,则将布尔变量设置为false 或者,如果运行时没有错误,则将布尔值设置为true

在我的情况下,我的代码是

$response = array();
$response["success"] = true;

$statement = $mysqli->prepare("INSERT INTO userft (name, username, pasword, email, contact, age) VALUES (?, ?, ?, ?, ?, ?)");
$statement->bind_param('ssssii', $name, $username,$pasword,$email,$contact, $age);
$statement->execute();

if(!($statement->execute())){   //<----- in replace of this statement?<-----
$response["success"]=false;}     
$response=array();
$response[“success”]=true;
$statement=$mysqli->prepare(“插入userft(姓名、用户名、密码、电子邮件、联系人、年龄)值(?,,,,,,,,?)”;
$statement->bind_param('ssssii',$name,$username,$pasword,$email,$contact,$age);
$statement->execute();

如果(!($statement->execute()){/如果将
execute
语句返回值赋给变量,则可以测试成功/失败

$response = array('success'=>false);


$stmt = $mysqli->prepare("INSERT INTO userft (name, username, pasword, email, contact, age) VALUES (?, ?, ?, ?, ?, ?)");
/* First test that the statement was prepared successfully */
if( $stmt ){
    $stmt->bind_param('ssssii', $name, $username,$pasword,$email,$contact, $age);

    /* assign return value of execute to a variable */
    $status = $stmt->execute();

    /* use variable to determine response */
    $response["success"]=$status ? true : false;
}

如果将
execute
语句返回值指定给一个可以测试成功/失败的变量,则可以在上阅读更多有关该变量的信息

$response = array('success'=>false);


$stmt = $mysqli->prepare("INSERT INTO userft (name, username, pasword, email, contact, age) VALUES (?, ?, ?, ?, ?, ?)");
/* First test that the statement was prepared successfully */
if( $stmt ){
    $stmt->bind_param('ssssii', $name, $username,$pasword,$email,$contact, $age);

    /* assign return value of execute to a variable */
    $status = $stmt->execute();

    /* use variable to determine response */
    $response["success"]=$status ? true : false;
}

您可以在

上阅读更多关于execute语句返回布尔值的信息,因此您做的是正确的;您可以将结果分配给变量:

$success = $statement->execute();
if ($success) {
    echo "Inserted!";
} else {
    echo "Something went wrong!";
}

如果有疑问,请检查。

execute语句返回布尔值,这样做是正确的;您可以将结果分配给变量:

$success = $statement->execute();
if ($success) {
    echo "Inserted!";
} else {
    echo "Something went wrong!";
}
如果有疑问,请检查。

试试这个

$statement->execute();
if ($statement->affected_rows()) {
         //success
} else {
   die('execute() failed: ' . $mysqli->error);
}
试试这个

$statement->execute();
if ($statement->affected_rows()) {
         //success
} else {
   die('execute() failed: ' . $mysqli->error);
}

$statement->execute()
执行INSET/UPDATE/DELETE时,已返回布尔值True或false。我认为这是用于检查数据库连接中的错误。如果我错了,请修改我的代码:)谢谢注意,您在代码中执行了两次
$statement->execute();
。WHY@RiggsFolly我想改变'如果(!($statement->execute())'这一行有一些错误处理,
$statement->execute()
执行INSET/UPDATE/DELETE时已返回布尔值True或false我想这是为了检查数据库连接中的错误如果我错了,请修改我的代码:)谢谢注意您正在执行
$statement->execute();
在代码中重复两次。WHY@RiggsFolly我想将“if(!($statement->execute())”这一行更改为一些错误处理。最好包含指向它的链接。最好包含指向它的链接