Latest web development tutorials
×

PHP مسار

PHP مسار PHP مقدمة موجزة PHP تثبيت PHP قواعد PHP متغير PHP echo/print PHP أنواع البيانات PHP ثابت PHP سلسلة PHP مشغلي PHP If...Else PHP Switch PHP مجموعة PHP فرز مجموعة PHP Superglobals PHP While تداول PHP For تداول PHP وظيفة PHP المتغيرات السحرية PHP مساحات PHP الشيئية

PHP شكل

PHP شكل PHP مصادقة النماذج PHP شكل - الحقول المطلوبة PHP شكل - البريد الإلكتروني التحقق وURL PHP المثال شكل كامل PHP $_GET متغير PHP $_POST متغير

PHP دروس متقدمة

PHP المصفوفات متعددة الأبعاد PHP تاريخ PHP احتواء PHP ملف PHP تحميل ملف PHP Cookie PHP Session PHP E-mail PHP أمن E-mail PHP Error PHP Exception PHP فلتر PHP فلتر متقدم PHP JSON

PHP 7 الميزات الجديدة

PHP 7 الميزات الجديدة

PHP قاعدة بيانات

PHP MySQL مقدمة موجزة PHP MySQL صلة PHP MySQL إنشاء قاعدة بيانات PHP MySQL إنشاء جدول بيانات PHP MySQL إدراج بيانات PHP MySQL إدراج بيانات متعددة PHP MySQL القوائم المعدة PHP MySQL قراءة البيانات PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX مقدمة موجزة AJAX PHP AJAX قاعدة بيانات AJAX XML AJAX البحث في الوقت الحقيقي AJAX RSS Reader AJAX تصويت

PHP الدليل المرجعي

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP معالجة الصور PHP RESTful

أعد PHP الخلية البيانات

البيانات المعدة لمنع حقن الخلية مفيد جدا.


البيانات المعدة والمعلمات المربوطة

البيانات المعدة لتنفيذ عدد وافر من عبارة SQL نفسه، وتنفذ بشكل أكثر كفاءة.

أعمال البيانات المعدة كما يلي:

  1. المعالجة: إنشاء قالب بيان SQL إرسالها إلى قاعدة البيانات. قيمة المعلمة محفوظة "؟" مارك. على سبيل المثال:

    INSERT 
    	INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  2. تحليل قاعدة البيانات، ترجمة، تنفيذ مزود بيانات قالب أمثلية الاستعلام، ويخزن النتيجة ليست الانتاج.

  3. التنفيذ: وأخيرا، فإن قيم المعلمات التي تم تمريرها إلى تطبيق ملزم ( "؟" علامة)، قاعدة بيانات ينفذ البيانات. التطبيقات التي يمكن تشغيلها عدة مرات، إذا كانت قيمة المعلمة ليست هي نفسها.

بالمقارنة مع التنفيذ المباشر من البيانات SQL، بيان أعد اثنين من المزايا الرئيسية:

  • البيانات المعدة يقلل بشكل كبير من الوقت التحليل، إلا استعلام (على الرغم من أن يتم تنفيذ البيانات).

  • المعلمات ملزمة للحد من عرض النطاق الترددي الخادم، ما عليك سوى إرسال استعلام المعلمة بدلا من العبارة بالكامل.

  • بيانات معدة ضد حقن SQL مفيد جدا، لأنه بعد استخدام بروتوكولات مختلفة لإرسال القيم المعلمة لضمان شرعية من البيانات.


أعد MySQLi البيانات

يستخدم المثال التالي MySQLi في بيان معد سلفا، وربط المعلمات المقابلة:

الأمثلة (MySQLi استخدام البيانات المعدة)

<بى
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDB".

// خلق اتصال
$ كونيتيكت = mysqli الجديد ($ SERVERNAME، $ اسم المستخدم، كلمة المرور $، $ DBNAME)؛

// اختبار الاتصال
إذا ($ conn-> connect_error) {
يموت ( "فشل الاتصال:" $ conn-> connect_error)؛
}

// المعالجة وملزمة
$ Stmt = $ conn-> باعداد ( "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني) VALUES (،،) ؟؟؟")؛
$ Stmt-> bind_param ( "نظام الضمان الاجتماعي"، $ الاسم الأول، اسم العائلة $، $ البريد الإلكتروني).

// تعيين المعلمات وأداء
$ الاسم الأول = "جون".
$ اسم العائلة = "دو".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

$ الاسم الأول = "ماري".
$ اسم العائلة = "مو".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

$ الاسم الأول = "جولي".
$ اسم العائلة = "دولي".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

صدى "يتم إدخال السجل الجديد بنجاح".

$ Stmt-> قريب ()؛
$ Conn-> قريب ()؛
؟>

تحليل كل سطر من التعليمات البرمجية في الأمثلة التالية:

"INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني) VALUES (؟،؟،؟)"

في عبارات SQL، ونحن نستخدم علامة الاستفهام (؟)، ونحن هنا يمكن أن يحل محل علامة الاستفهام عدد صحيح، سلسلة، مزدوجة الدقة الفاصلة العائمة، والقيم المنطقية.

بعد ذلك، دعونا نلقي نظرة على bind_param () وظيفة:

$ Stmt-> bind_param ( "نظام الضمان الاجتماعي"، $ الاسم الأول، اسم العائلة $، $ البريد الإلكتروني).

المعلمات SQL وظيفة مأزق، ونقول للقيمة المعلمة قاعدة البيانات. "نظام الضمان الاجتماعي" أنواع معالجة البيانات عمود معلمة للمعلمات المتبقية. الصورة الشخصية يحكي قاعدة بيانات أن السلسلة المعلمة.

هناك أربعة أنواع من المعلمات:

  • ط - عدد صحيح (صحيح)
  • د - مزدوجة (نقطة ضعف الدقة العائمة)
  • الصورة - سلسلة (سلسلة)
  • ب - BLOB (كائن كبير ثنائي: كائنات كبيرة ثنائية)

ومطلوب من كل معلمة لتحديد نوع.

المعلمة نوع البيانات يحكي قاعدة البيانات، يمكنك تقليل مخاطر حقن SQL.

مذكرة ملاحظة: إذا كنت ترغب في إدراج بيانات إضافية (مدخلات المستخدم)، والتحقق من البيانات مهم جدا.


أعدت شركة تنمية نفط عمان في البيانات

الأمثلة التالية نستخدم البيانات المعدة في شركة تنمية نفط عمان والمعلمات ملزم:

الأمثلة (شركة تنمية نفط عمان باستخدام بيانات معدة)

<بى
$ الخادم = "مضيف".
$ اسم المستخدم = "اسم المستخدم".
$ كلمة المرور = "كلمة المرور".
$ DBNAME = "myDBPDO".

محاولة {
$ كونيتيكت = الجديدة شركة تنمية نفط عمان ( "ك: المضيف = $ SERVERNAME، DBNAME = $ DBNAME"، $ اسم المستخدم، كلمة المرور $)؛
// تعيين استثناء وضع خطأ شركة تنمية نفط عمان
$ Conn-> على SetAttribute (شركة تنمية نفط عمان :: ATTR_ERRMODE، شركة تنمية نفط عمان :: ERRMODE_EXCEPTION)؛

// المعلمات ربط المعالجة وSQL
$ Stmt = $ conn-> إعداد ( "INSERT INTO MyGuests (الاسم الأول، اسم العائلة، البريد الإلكتروني)
VALUES (: الاسم الأول ،: اسم العائلة ،: البريد الإلكتروني) ")؛
$ Stmt-> bindParam ( ': الاسم الأول، الاسم الأول $)؛
$ Stmt-> bindParam ( ': اسم العائلة، اسم العائلة $)؛
$ Stmt-> bindParam ( ': البريد الإلكتروني، البريد الإلكتروني $)؛

// إدراج صف واحد
$ الاسم الأول = "جون".
$ اسم العائلة = "دو".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

// إدراج صف آخر
$ الاسم الأول = "ماري".
$ اسم العائلة = "مو".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

// إدراج صف آخر
$ الاسم الأول = "جولي".
$ اسم العائلة = "دولي".
$ البريد الإلكتروني = "[email protected]".
$ Stmt-> تنفيذ ()؛

صدى "يتم إدخال السجل الجديد بنجاح".
}
الصيد (PDOException $ ه)
{
.. صدى $ SQL "<BR>" $ ه> getMessage ()؛
}
$ كونيتيكت = فارغة؛
؟>