0

我有一个包含许多函数的 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);
}
4

1 回答 1

0

更改此代码

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 错误。
然后再次运行您的代码。

于 2013-08-11T16:45:22.603 回答