English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية إدخال السجلات في جدول MySQL باستخدام PHP.
الآن، بعد أن تعرفت على كيفية إنشاء قاعدة بيانات وتشكيل الجداول في MySQL، في هذا الدرس ستتعلم كيفية تنفيذ استعلامات SQL لضمان إدخال السجلات في الجداول.
INSERT INTOيستخدم لإدخال سجلات جديدة في جدول قاعدة البيانات.
لنستخدم جملة INSERT INTO مع القيم المناسبة لتنفيذ استعلام SQL، بعد ذلك سنقوم بتمرير استعلام INSERT هذا إلى دالة PHP mysqli_query() لتنفيذ استعلام INSERT هذا لضمان إدخال البيانات في الجدول. إليك مثال، حيث يتم تحديداسم الأول،اسم العائلةوالبريد الإلكترونيقيم الأعمدة تجاهpersonsإدراج سطر جديد في الجدول.
<?php $link = mysqli_connect("localhost", "root", "", "demo"); // تحقق من الاتصال if($link === false){ die("خطأ: لا يمكن الاتصال. " . mysqli_connect_error()); } //حاول تنفيذ استعلام الإدراج $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if(mysqli_query($link, $sql)){ echo "إدراج السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . mysqli_error($link); } //غلق الاتصال mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //تحقق من الاتصال if($mysqli === false){ die("ERROR: Could not connect. " . $mysqli->connect_error); } //حاول تنفيذ استعلام الإدراج $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if($mysqli->query($sql) === true){ echo "إدراج السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . $mysqli->error; } //غلق الاتصال $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //ضبط نموذج PDO على استثنائية $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("ERROR: Could not connect. " . $e->getMessage()); } //حاول تنفيذ استعلام الإدراج try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; $pdo->exec($sql); echo "إدراج السجل بنجاح."; } catch(PDOException $e){ die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage()); } //غلق الاتصال unset($pdo); ?>
إذا كنت تتذكرالمحتوى في الفصل السابق،ثمidالمؤشرات المميزة بـ AUTO_INCREMENT. هذا المزيج يخبر MySQL، إذا لم يتم تحديد القيمة، فسيتم تخصيص قيمة تلقائية للميدان عن طريق زيادة القيمة السابقة.
يمكنك أيضًا إدراج عدة أسطر في الجدول باستخدام استعلام إدراج واحد. لفعل ذلك، شمل عدة قوائم قيم الأعمدة في جملة INSERT INTO، ويجب أن تكون قيم كل سطر محاطة ببكات مفتوحة ومفصولة بالكومات.
دعونا فيpersonsأضف بعض الأسطر إلى الجدول، كما يلي:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //تحقق من الاتصال if($link === false){ die("خطأ: لا يمكن الاتصال. " . mysqli_connect_error()); } //حاول تنفيذ استعلام الإدراج (' (' if(mysqli_query($link, $sql)){ echo "تم إضافة السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . mysqli_error($link); } //غلق الاتصال mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //تحقق من الاتصال if($mysqli === false){ die("ERROR: Could not connect. " . $mysqli->connect_error); } //حاول تنفيذ استعلام الإدراج (' (' if($mysqli->query($sql) === true){ echo "إدراج السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . $mysqli->error; } //غلق الاتصال $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //ضبط نموذج PDO على استثنائية $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("خطأ: لا يمكن الاتصال. " . $e->getMessage()); } //حاول تنفيذ استعلام الإدراج try{ (' (' $pdo->exec($sql); echo "إدراج السجل بنجاح."; } catch(PDOException $e){ die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage()); } //غلق الاتصال unset($pdo); ?>
الآن، انتقل إلى phpMyAdmin (http://localhost/phpmyadmin/)، وحققالعرضفي قاعدة البياناتالناسجدول البيانات. ستجدمجالالقيمة من خلال إضافةمجالالقيمة تزيد بناءً على التخصيص التلقائي.
ملاحظة: يمكن أن يحتوي جملة SQL على عدد غير محدود من الرسوم البيانية، بشرط ألا ت破坏 الكلمات الرئيسية، القيم، التعبيرات، إلخ.
في الفصل السابق، تعلمنا كيفية إدراج بيانات من سكربت PHP إلى قاعدة البيانات. الآن، سنرى كيفية إدراج بيانات من استمارة HTML إلى قاعدة البيانات. دعونا ننشئ استمارة HTML يمكن استخدامها لإدراج سجلات جديدة فيالناسالجدول.
هذا نموذج HTML بسيط يحتوي على ثلاثة نصوص<input>و زر تقديم.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>استمارة إضافة سجل</title> </head> <form action="insert.php" method="post"> <p> <label for="firstName">الاسم الأول:</label> <input type="text" name="first_name" id="firstName"> </p> <p> <label for="lastName">اسم العائلة:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">عنوان البريد الإلكتروني:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Submit"> </form> </html>اختبار‹/›
في هذا المثال، عند الضغط على زر تقديم استمارة HTML، يتم إرسال بيانات الاستمارة إلى ملف "insert.php". يتم اتصال ملف "insert.php" بخادم قاعدة بيانات MySQL، باستخدام متغيرات PHP $_REQUEST لاسترداد حقول الاستمارة، ثم تنفيذ استعلام إدراج للإضافة إلى السجلات. هذا هو رمز ملف "insert.php" الكامل:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //تحقق من الاتصال if($link === false){ die("ERROR: Could not connect." . mysqli_connect_error()); } //للأمان، تحويل إدخال المستخدم $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']); $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']); $email = mysqli_real_escape_string($link, $_REQUEST['email']); //حاول تنفيذ استعلام الإدراج $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if(mysqli_query($link, $sql)){ echo "تم إضافة السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . mysqli_error($link); } //غلق الاتصال mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //تحقق من الاتصال if($mysqli === false){ die("خطأ: لا يمكن الاتصال." . $mysqli->connect_error); } //للأمان، تحويل إدخال المستخدم $first_name = $mysqli->real_escape_string($_REQUEST['first_name']); $last_name = $mysqli->real_escape_string($_REQUEST['last_name']); $email = $mysqli->real_escape_string($_REQUEST['email']); //حاول تنفيذ استعلام الإدراج $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if($mysqli->query($sql) === true){ echo "إدراج السجل بنجاح."; } echo "خطأ: لا يمكن تنفيذ $sql." . $mysqli->error; } //غلق الاتصال $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //ضبط نموذج PDO على استثنائية $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("خطأ: لا يمكن الاتصال." . $e->getMessage()); } //حاول تنفيذ استعلام الإدراج try{ //جملة PREPARE $sql = "INSERT INTO persons (first_name, last_name, email) VALUES (:first_name, :last_name, :email)"; $stmt = $pdo->prepare($sql); //ربط المعلمات إلى الجملة $stmt->bindParam(':first_name', $_REQUEST['first_name']); $stmt->bindParam(':last_name', $_REQUEST['last_name']); $stmt->bindParam(':email', $_REQUEST['email']); //تنفيذ الجملة المعدة $stmt->execute(); echo "إدراج السجل بنجاح."; } catch(PDOException $e){ die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage()); } //إغلاق الاتصال unset($pdo); ?>
في الفصل التالي، سنوسع من مثال استعلام الإدراج هذا من خلال تنفيذالجملة المعدةلزيادة الأمان والأداء، مما يعزز تطويره بشكل أكبر.
ملاحظة:وظيفة mysqli_real_escape_string() تحويل الأحرف الخاصة في النص وتوليد نص SQL قانوني لتقديم حماية ضدحقول SQL غير مناسبةالأمان.
هذا مثال أساسي جدًا ل插入 بيانات النموذج في جدول قاعدة بيانات MySQL. يمكنك توسيع هذا المثال لجعله أكثر تفاعلية عن طريق إضافة التحقق إلى إدخالات المستخدم ثم إدراجه في جدول القاعدة البيانات. انظر إلىتحقق من نموذج PHPالدليل، للحصول على معلومات إضافية حول استخدام PHP لتنظيف وتحقق صحة إدخالات المستخدم.