多くの関数を持つPHPクラスがあり、これが私の問題です:
関数Aでは、データベースへの挿入を準備するためのいくつかの手順を実行しますが、このコードのような他の関数(B関数)で実行したいのでコミットしません。しかし、データベースには 1 行も挿入されません。
何か案が?
すべてのおかげで、これは私のサンプルコードです:
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);
}