亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP MySQL insère plusieurs éléments de données

PHP MySQL Insérer plusieurs éléments de données

Utilisez MySQLi et PDO pour insérer plusieurs éléments de données dans MySQL

La fonction mysqli_multi_query() peut être utilisée pour exécuter plusieurs instructions SQL.

L'exemple suivant ajoute trois nouveaux enregistrements à la table "MyGuests"?:

Exemple (MySQLi - Orienté Objet)

<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";
 
 // 創(chuàng)建鏈接
 $conn = new mysqli($servername, $username, $password, $dbname);
 // 檢查鏈接
 if ($conn->connect_error) {
     die("連接失敗: " . $conn->connect_error);
 } 
 
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('John', 'Doe', 'john@example.com');";
 $sql .= "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('Mary', 'Moe', 'mary@example.com');";
 $sql .= "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('Julie', 'Dooley', 'julie@example.com')";
 
 if ($conn->multi_query($sql) === TRUE) {
     echo "新記錄插入成功";
 } else {
     echo "Error: " . $sql . "<br>" . $conn->error;
 }
 
 $conn->close();
 ?>

Veuillez noter que chaque instruction SQL doit être Non. séparé.

Instance (MySQLi - Orienté procédure)

<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";
 
 // 創(chuàng)建鏈接
 $conn = mysqli_connect($servername, $username, $password, $dbname);
 // 檢查鏈接
 if (!$conn) {
     die("連接失敗: " . mysqli_connect_error());
 }
 
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('John', 'Doe', 'john@example.com');";
 $sql .= "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('Mary', 'Moe', 'mary@example.com');";
 $sql .= "INSERT INTO MyGuests (firstname, lastname, email)
 VALUES ('Julie', 'Dooley', 'julie@example.com')";
 
 if (mysqli_multi_query($conn, $sql)) {
     echo "新記錄插入成功";
 } else {
     echo "Error: " . $sql . "<br>" . mysqli_error($conn);
 }
 
 mysqli_close($conn);
 ?>

Instance (PDO)

<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDBPDO";
 
 try {
     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
     // set the PDO error mode to exception
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
     // 開始事務
     $conn->beginTransaction();
     // SQL 語句
     $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
     VALUES ('John', 'Doe', 'john@example.com')");
     $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
     VALUES ('Mary', 'Moe', 'mary@example.com')");
     $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
     VALUES ('Julie', 'Dooley', 'julie@example.com')");
 
     // 提交事務
     $conn->commit();
     echo "新記錄插入成功";
 }
 catch(PDOException $e)
 {
     // 如果執(zhí)行失敗回滾
     $conn->rollback();
     echo $sql . "<br>" . $e->getMessage();
 }
 
 $conn = null;
 ?>

Utiliser les instructions préparées

fournies par l'extension mysqli La deuxième méthode est utilisée pour insérer des instructions.

Nous pouvons préparer des déclarations et lier des paramètres.

L'extension mysql peut envoyer des instructions ou des requêtes à la base de données mysql sans données. Vous pouvez associer ou ? lier ? de manière nématique des variables.

Exemple (MySQLi utilise des instructions préparées)

<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";
 
 // 創(chuàng)建連接
 $conn = new mysqli($servername, $username, $password, $dbname);
 // 檢測連接
 if ($conn->connect_error) {
     die("連接失敗: " . $conn->connect_error);
 } else {
     $sql = "INSERT INTO MyGuests VALUES(?, ?, ?)";
 
     // 為 mysqli_stmt_prepare() 初始化 statement 對象
     $stmt = mysqli_stmt_init($conn);
 
     //預處理語句
     if (mysqli_stmt_prepare($stmt, $sql)) {
         // 綁定參數(shù)
         mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
 
         // 設置參數(shù)并執(zhí)行
         $firstname = 'John';
         $lastname = 'Doe';
         $email = 'john@example.com';
         mysqli_stmt_execute($stmt);
 
         $firstname = 'Mary';
         $lastname = 'Moe';
         $email = 'mary@example.com';
         mysqli_stmt_execute($stmt);
 
         $firstname = 'Julie';
         $lastname = 'Dooley';
         $email = 'julie@example.com';
         mysqli_stmt_execute($stmt);
     }
 }
 ?>

Nous pouvons voir que la modularisation est utilisée pour résoudre le problème dans l'exemple ci-dessus. Nous pouvons faciliter la lecture et la gestion en créant des blocs de code.

Faites attention à la liaison des paramètres. Jetons un coup d'?il au code dans mysqli_stmt_bind_param()?:

mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

Cette fonction lie la requête de paramètre et Les paramètres sont transmis à la base de données. Le deuxième paramètre est "sss" . La liste suivante montre les types de paramètres. Le caractère s indique à MySQL que le paramètre est une cha?ne.

peut être les quatre paramètres suivants?:

·???????? b - Valeur booléenne

Chaque paramètre doit spécifier un type pour assurer la sécurité des données. Le jugement de type peut réduire le risque de vulnérabilités d’injection SQL.

Formation continue
||
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 創(chuàng)建鏈接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 檢查鏈接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')"; if (mysqli_multi_query($conn, $sql)) { echo "新記錄插入成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); ?>
soumettreRéinitialiser le code