mysqli::begin_transaction

creationdev

Documentation

Conception web standard
Conception web standard

2500$ CAD

Conception web microsite
Conception web microsite

1000$ CAD

Référencement web organique
Référencement web organique

300$ CAD

Conception d'application web
Conception d'application web

100$ CAD

Conception web extra
Conception web extra

5000$ CAD

Référencement web optimisé
Référencement web optimisé

500$ CAD

Formation référencement web
Formation référencement web

100$ CAD

Référencement web expert
Référencement web expert

750$ CAD

Conception web ecommerce
Conception web ecommerce

2500$ CAD

Référencement web stratégique
Référencement web stratégique

1000$ CAD

Méthode

Méthode

mysqli::begin_transaction

mysqli::begin_transaction

Page Vue 26 déc. 2018
Page Vue 13 fois

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::begin_transaction -- mysqli_begin_transaction — Démarre une transaction

Description

Style orienté objet

public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool

Style procédural:

mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Commence une transaction. Nécessite le moteur InnoDB (il est actif par défaut). Pour plus de détails sur le fonctionnement des transactions MySQL, voir » http://dev.mysql.com/doc/mysql/en/commit.html.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou par la fonction mysqli_init().

flags

Les drapeaux valides sont :

  • MYSQLI_TRANS_START_READ_ONLY : Commence la transaction comme "START TRANSACTION READ ONLY". Nécessite MySQL 5.6 ou supérieur.

  • MYSQLI_TRANS_START_READ_WRITE : Commence la transaction comme "START TRANSACTION READ WRITE". Nécessite MySQL 5.6 et supérieur.

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT : Commence la transaction comme "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Nom du point de sauvegarde pour la transaction.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.0.0 name est désormais nullable.

Exemples

Exemple #1 Exemple avec mysqli::begin_transaction()

Style orienté objet

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Démarre la transaction */
$mysqli->begin_transaction();

try {
/* Insère plusieurs valeurs */
$mysqli->query("INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente d'insérer de mauvaises valeurs */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);
$stmt->execute();

/* Si le code arrive à ce point sans erreur, alors on commit les données dans
la base de données */
$mysqli->commit();
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Style procédural

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Commence la transaction */
mysqli_begin_transaction($mysqli);

try {
/* Insère plusieurs valeurs */
mysqli_query($mysqli, "INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente d'insérer de mauvaises valeurs */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);
mysqli_stmt_execute($stmt);

/* Si le code arrive à ce point sans erreur, alors on commit les données dans
la base de données */
mysqli_commit($mysqli);
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Notes

Note:

Cette fonction ne fonctionne pas avec les types de table non transactionnelle (comme MyISAM ou ISAM).

Voir aussi


Source : http://www.php.net/
Ref : methode-mysqli::begin-transaction.php




Contact

Contact

Veuillez saisir les infos dans le formulaire d'identification
suivant pour concevoir et référencer votre site.









Veuillez saisir votre message.

Carte d'affaires

Affichage de la carte d'affaires recto/verso.

Carte d'affaires recto
Carte d'affaires verso

Partagez

Partagez

Discussion ayant comme sujet la page mysqli::begin_transaction.

©2025 creationdev -  F.A.Q. -  Soutien -  Haut de page
THÈMES: