Php Mysqli在其他函数中提交

Php Mysqli在其他函数中提交,php,mysqli,commit,Php,Mysqli,Commit,我有一个包含许多函数的PHP类,这是我的问题: 在函数A中,我执行了一些步骤来准备插入数据库 但我不提交,因为我想在其他函数(B函数)中执行,如下面的代码。 但在数据库中没有插入任何一行 有什么想法吗 感谢大家,这是我的示例代码: public static function functionA($id, $email, $password, $name, $surname) { global $mysqli; $mysqli = self::getDb(); //with

我有一个包含许多函数的PHP类,这是我的问题:

在函数A中,我执行了一些步骤来准备插入数据库 但我不提交,因为我想在其他函数(B函数)中执行,如下面的代码。 但在数据库中没有插入任何一行

有什么想法吗

感谢大家,这是我的示例代码:

public static function functionA($id, $email, $password, $name, $surname) {

    global $mysqli;

    $mysqli = self::getDb(); //with $mysqli->autocommit(FALSE); 

    if (!($stmt = $mysqli->prepare('INSERT INTO User (Id, mail, Password, Name, Surname) VALUES (?,?,?,?,?)'))){

           self::closeDatabase($mysqli, $stmt);
           die;
    }

    if (!$stmt->bind_param("sssss", $id, $email, $password, $name, $surname)) {

        self::closeDatabase($mysqli, $stmt);
        die;
    }

    if (!$stmt->execute()) {

        self::closeDatabase($mysqli, $stmt);
        die;
    }

}
public static function functionB() {

    global $mysqli;

    $mysqli->commit();

    self::closeDatabase($mysqli, $stmt);
}
更改此代码

if (!($stmt = $mysqli->prepare('INSERT INTO User (Id, mail, Password, Name, Surname) VALUES (?,?,?,?,?)'))){


    self::closeDatabase($mysqli, $stmt);
    die;
}
对于这一点:

$sql = 'INSERT INTO User (Id, mail, Password, Name, Surname) VALUES (?,?,?,?,?)';
if (!($stmt = $mysqli->prepare($sql)))
{
    throw new Exception($mysqli->error." [$sql]");
}
对于您的所有疑问。
然后确保可以看到PHP错误。

然后再次运行您的代码。

使用属性,而不要使用
全局
?请在您的问题中添加一些代码和查询示例。现在我发布了一个简单的代码,谢谢。我假设您使用的不是真正的代码?发布它是没有用的,然后我只更改了semplify函数的名称,其余的与我的代码完全相同。我认为问题只存在于其余函数的单独提交中,因为如果我在函数中放入提交,插入查询将正常运行……程序员永远不会思考。但是请确定。我根据您的建议更改了代码,但是我得到了相同的结果。只有当commit处于函数状态时,查询才会工作,然后您必须确保它是同一个mysqli实例。do
var_dump($mysqli)并检查两个变量的#后面的数字