با استفاده از MySQLi و PDO چندین رکورد را در MySQL وارد کنید(Insert Multiple Records Into MySQL Using MySQLi and PDO)


چند دستور SQL باید با تابع mysqli_multi_query() اجرا شود.



مثال های زیر سه رکورد جدید را به جدول "MyGuests" اضافه می کنند:



مثال (MySQLi Object-oriented)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($serve
ame, $use
ame, $password, $dbname);

// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $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 "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

?>






توجه داشته باشید که هر دستور SQL باید با یک نقطه ویرگول از هم جدا شود.
















مثال (MySQLi Procedural)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";
$password = "password";
$dbname = "myDB";

// Create connection

$conn = mysqli_connect($serve
ame, $use
ame, $password, $dbname);

// Check connection

if (!$conn) {

    die("Connection failed: " . 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 "New records created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

?>




روش PDO کمی متفاوت است:




مثال (PDO)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";

$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$serve
ame;dbname=$dbname", $use
ame, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // begin the transaction
    $conn->beginTransaction();
    // our SQL statements
    $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')");

    // commit the transaction
    $conn->commit();
    echo "New records created successfully";
    }
catch(PDOException $e)
    {
    // roll back the transaction if something failed
    $conn->rollback();
    echo "Error: " . $e->getMessage();
    }


$conn = null;

?>