Comment insérer plusieurs éléments de données via PHP MySQL

jacklove
Libérer: 2023-03-25 14:10:02
original
3220 Les gens l'ont consulté

Nous voyons souvent des données insérées dans la base de données sur les sites Web. Cet article explique comment insérer plusieurs éléments de données dans la base de données.

Insérer plusieurs éléments de données dans MySQL à l'aide de MySQLi et la fonction PDO

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"; 
// 创建链接$conn = new mysqli($servername, $username, $password, $dbname);// 检查链接if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);} 
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"; 
if ($conn->multi_query($sql) === TRUE) {
    echo "新记录插入成功";} else {
    echo "Error: " . $sql . "<br>" . $conn->error;}
 $conn->close();?>
Copier après la connexion



Veuillez noter que chaque instruction SQL doit être séparée par un point-virgule.

Instance (MySQLi - Procedural)

<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB"; 
// 创建链接$conn = mysqli_connect($servername, $username, $password, $dbname);// 检查链接if (!$conn) {
    die("连接失败: " . mysqli_connect_error());}
 $sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;);";$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"; 
if (mysqli_multi_query($conn, $sql)) {
    echo "新记录插入成功";} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);}
 mysqli_close($conn);?>
Copier après la connexion

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 (&#39;John&#39;, &#39;Doe&#39;, &#39;john@example.com&#39;)");    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES (&#39;Mary&#39;, &#39;Moe&#39;, &#39;mary@example.com&#39;)");    $conn->exec("INSERT INTO MyGuests (firstname, lastname, email) 
    VALUES (&#39;Julie&#39;, &#39;Dooley&#39;, &#39;julie@example.com&#39;)"); 
    // 提交事务
    $conn->commit();    echo "新记录插入成功";}catch(PDOException $e){
    // 如果执行失败回滚
    $conn->rollback();    echo $sql . "<br>" . $e->getMessage();}
 $conn = null;?>
Copier après la connexion

Utilisation d'instructions préparées

L'extension mysqli fournit les deux méthodes sont utilisés 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"; 
// 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// 检测连接if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);} else {
    $sql = "INSERT INTO MyGuests(firstname, lastname, email)  VALUES(?, ?, ?)"; 
    // 为 mysqli_stmt_prepare() 初始化 statement 对象
    $stmt = mysqli_stmt_init($conn); 
    //预处理语句
    if (mysqli_stmt_prepare($stmt, $sql)) {
        // 绑定参数
        mysqli_stmt_bind_param($stmt, &#39;sss&#39;, $firstname, $lastname, $email); 
        // 设置参数并执行
        $firstname = &#39;John&#39;;        $lastname = &#39;Doe&#39;;        $email = &#39;john@example.com&#39;;        mysqli_stmt_execute($stmt); 
        $firstname = &#39;Mary&#39;;        $lastname = &#39;Moe&#39;;        $email = &#39;mary@example.com&#39;;        mysqli_stmt_execute($stmt); 
        $firstname = &#39;Julie&#39;;        $lastname = &#39;Dooley&#39;;        $email = &#39;julie@example.com&#39;;        mysqli_stmt_execute($stmt);    }}?
Copier après la connexion

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 les paramètres Interrogez et transmettez les paramètres à 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 :

i - entier

d - nombre à virgule flottante double précision

s - chaîne

b - Valeur booléenne

Chaque paramètre doit préciser 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.

Cet article explique en détail comment insérer plusieurs éléments de données via php. Pour plus de matériel d'apprentissage, veuillez faire attention au site Web chinois de php.

Recommandations associées :

Comment insérer des données dans MySQL via PHP

Comment créer une table MySQL via PHP

Comment créer une base de données via PHP MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!