PHP – درج چندین رکورد در MySQL
برای درج چندین رکورد در پایگاه داده MySQL، میتوانید از روشهای مختلفی استفاده کنید. در این مقاله، نحوه درج چندین رکورد با استفاده از MySQLi و PDO در PHP را بررسی خواهیم کرد.
استفاده از MySQLi
1. MySQLi به روش شیءگرا
برای درج چندین رکورد با MySQLi به روش شیءگرا، از تابع multi_query()
استفاده میکنیم. توجه داشته باشید که هر عبارت SQL باید با یک نقطهویرگول (;) جدا شود.
<?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 برای درج رکوردها
$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')";
// اجرای چندین دستور SQL
if ($conn->multi_query($sql) === TRUE) {
echo "رکوردهای جدید با موفقیت ایجاد شدند";
} else {
echo "خطا: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
2. MySQLi به روش رویهای
در اینجا نیز همانند روش شیءگرا عمل میکنیم اما با استفاده از توابع رویهای MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد اتصال
$conn = mysqli_connect($servername, $username, $password, $dbname);
// بررسی اتصال
if (!$conn) {
die("اتصال ناموفق: " . mysqli_connect_error());
}
// چندین دستور SQL برای درج رکوردها
$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')";
// اجرای چندین دستور SQL
if (mysqli_multi_query($conn, $sql)) {
echo "رکوردهای جدید با موفقیت ایجاد شدند";
} else {
echo "خطا: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
استفاده از PDO
در PDO، برای درج چندین رکورد، معمولاً از تراکنشها استفاده میکنیم تا از اطمینان از درج موفقیتآمیز تمامی رکوردها اطمینان حاصل کنیم. در این روش، با استفاده از beginTransaction()
, commit()
, و rollback()
، تراکنشها را مدیریت میکنیم.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
// ایجاد اتصال
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// تنظیم حالت خطا به استثنا
$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) {
// برگشت تراکنش در صورت بروز خطا
$conn->rollback();
echo "خطا: " . $e->getMessage();
}
$conn = null;
?>
در این مثالها، استفاده از MySQLi و PDO برای درج چندین رکورد در پایگاه داده MySQL را بررسی کردیم. با استفاده از MySQLi، میتوانید از تابع multi_query()
برای اجرای چندین دستور SQL استفاده کنید، در حالی که در PDO، برای مدیریت تراکنشها و اطمینان از درج موفقیتآمیز رکوردها از تراکنشها بهره میبرید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام