PHP الخلية إدراج بيانات متعددة
استخدام MySQLi وشركة تنمية نفط عمان الخلية لادخال بيانات متعددة
يتم استخدام الدالة mysqli_multi_query () لتنفيذ عبارات SQL متعددة.
الأمثلة التالية هي "MyGuests" بإضافة الجدول ثلاثة أرقام قياسية جديدة:
الأمثلة (MySQLi - الشيئية)
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDB".
// إنشاء ارتباط
$ كونيتيكت = mysqli الجديد ($ SERVERNAME، $ اسم المستخدم، كلمة المرور $، $ DBNAME)؛
// تحقق من الوصلات
إذا ($ conn-> connect_error) {
يموت ( "فشل الاتصال:" $ conn-> connect_error)؛
}
$ SQL = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جون'، 'دو'، '[email protected]')؛ "؛
$ SQL. = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'مريم'، 'مو'، '[email protected]')؛ "؛
$ SQL. = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جولي'، 'دولي'، '[email protected]')؛ "
إذا ($ conn-> multi_query ($ مزود) === TRUE) {
صدى "يتم إدخال السجل الجديد بنجاح".
} {شيء آخر
. صدى "خطأ:" $ SQL "<BR>" خطأ $ conn->، ..
}
$ Conn-> قريب ()؛
؟>
لاحظ أن كل عبارة SQL يجب أن تكون مفصولة بفاصلة منقوطة. |
الأمثلة (MySQLi - عملية المنحى)
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDB".
// إنشاء ارتباط
$ كونيتيكت = mysqli_connect ($ SERVERNAME، $ اسم المستخدم، كلمة المرور $، $ DBNAME)؛
// تحقق من الوصلات
إذا (! $ كونيتيكت) {
يموت ( "فشل الاتصال:" mysqli_connect_error ())؛
}
$ SQL = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جون'، 'دو'، '[email protected]')؛ "؛
$ SQL. = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'مريم'، 'مو'، '[email protected]')؛ "؛
$ SQL. = "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جولي'، 'دولي'، '[email protected]')؛ "
إذا (mysqli_multi_query ($ كونيتيكت، $ مزود)) {
صدى "يتم إدخال السجل الجديد بنجاح".
} {شيء آخر
. صدى "خطأ:" $ SQL "<BR>" mysqli_error ($ كونيتيكت)؛ ..
}
mysqli_close ($ كونيتيكت)؛
؟>
أمثلة من (PDO)
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDBPDO".
محاولة {
$ كونيتيكت = الجديدة شركة تنمية نفط عمان ( "ك: المضيف = $ SERVERNAME، DBNAME = $ DBNAME"، $ اسم المستخدم، كلمة المرور $)؛
// تعيين وضع الخطأ شركة تنمية نفط عمان إلى استثناء
$ Conn-> على SetAttribute (شركة تنمية نفط عمان :: ATTR_ERRMODE، شركة تنمية نفط عمان :: ERRMODE_EXCEPTION)؛
// بدء المعاملة
$ Conn-> beginTransaction ()؛
// بيان SQL
$ Conn-> إكسيك ( "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جون'، 'دو'، '[email protected]') ")؛
$ Conn-> إكسيك ( "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'مريم'، 'مو'، '[email protected]') ")؛
$ Conn-> إكسيك ( "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES ( 'جولي'، 'دولي'، '[email protected]') ")؛
// الالتزام المعاملة
$ Conn-> ارتكاب ()؛
صدى "يتم إدخال السجل الجديد بنجاح".
}
الصيد (PDOException $ ه)
{
// إذا فشل التراجع
$ Conn-> التراجع ()؛
.. صدى $ SQL "<BR>" $ ه> getMessage ()؛
}
$ كونيتيكت = فارغة؛
؟>
استخدام البيانات المعدة
يوفر تمديد mysqli طريقة أخرى لادخال البيانات.
ونحن على استعداد البيانات والمعلمات ملزمة.
تمديد الخلية يمكن أن تنقل البيانات دون بيان أو الاستعلام إلى قاعدة بيانات الخلية. يمكنك إقران أو المتغيرات "مأزق" لالأعمدة.
الأمثلة (MySQLi استخدام البيانات المعدة)
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDB".
// خلق اتصال
$ كونيتيكت = mysqli الجديد ($ SERVERNAME، $ اسم المستخدم، كلمة المرور $، $ DBNAME)؛
// اختبار الاتصال
إذا ($ conn-> connect_error) {
يموت ( "فشل الاتصال:" $ conn-> connect_error)؛
} {شيء آخر
$ SQL = "INSERT INTO MyGuests VALUES (،، ؟؟؟)".
// لmysqli_stmt_prepare () الأجسام بيان التهيئة
$ Stmt = mysqli_stmt_init ($ كونيتيكت)؛
// بيان معد سلفا
إذا (mysqli_stmt_prepare ($ stmt، مزود $)) {
// المعلمات ربط
mysqli_stmt_bind_param ($ stmt، "نظام الضمان الاجتماعي، $ الاسم الأول، اسم العائلة $، $ البريد الإلكتروني).
// تعيين المعلمات وأداء
$ الاسم الأول = 'جون'؛
$ اسم العائلة = 'دو'؛
$ البريد الإلكتروني = '[email protected]'؛
mysqli_stmt_execute ($ stmt)؛
$ الاسم الأول = 'مريم'؛
$ اسم العائلة = 'مو'؛
$ البريد الإلكتروني = '[email protected]'؛
mysqli_stmt_execute ($ stmt)؛
$ الاسم الأول = 'جولي'؛
$ اسم العائلة = 'دولي'؛
$ البريد الإلكتروني = '[email protected]'؛
mysqli_stmt_execute ($ stmt)؛
}
}
؟>
يمكننا أن نرى في المثال أعلاه باستخدام وحدات للتعامل مع هذه المشكلة. يمكننا خلق كتلة من التعليمات البرمجية لتسهيل القراءة والإدارة.
ملاحظة المعلمات ملزمة. دعونا ننظر في mysqli_stmt_bind_param () رمز:
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
الحجج الملزمة للاستعلام وتمرير المعلمات إلى قاعدة البيانات. المعلمة الثانية هي "نظام الضمان الاجتماعي". توضح القائمة التالية نوع المعلمة. الصورة الشخصية يقول حجة الخلية هي سلسلة.
قد يكون من المعلمات الأربع التالية:
- ط - صحيح
- د - الدقة المزدوجة عدد الفاصلة العائمة
- الصورة - سلسلة
- ب - قيمة منطقية
يجب تحديد كل نوع المعلمة لضمان أمن البيانات. حسب نوع الحكم يمكن أن تقلل من خطر التعرض حقن SQL.