الرئيسية المنتدى مركز رفع الصور صفحتنا على الفيس قناة اليوتيوب صفحتنا على تويتر واتس اب قوانين المنتدى
منتدى مجمع التطوير    

العودة   منتدى مجمع التطوير > المنتدى المتخصص > لغـات البرمجـة والمشـاريع الجـاهزة > برمجة الويب web development

الملاحظات

برمجة الويب web development يهتم ببرامج الويب php, Sql, Java ,asp.net ,xml ,html

آخر 10 مشاركات افعل الخير ولا تنظر جزاءه الا من الله (الكاتـب : admin - مشاركات : 0 - المشاهدات : 36 - الوقت: 08:12 PM - التاريخ: 07-27-2021)           »          دليلك لبناء الباك لينك Backlink لموقعك بطريقة صحيحة (الكاتـب : admin - مشاركات : 2 - المشاهدات : 280 - الوقت: 10:15 PM - التاريخ: 07-26-2021)           »          ملف ال robots.txt وتوجيه عناكب محركات البحث لموقعك (الكاتـب : admin - مشاركات : 2 - المشاهدات : 345 - الوقت: 01:24 PM - التاريخ: 07-21-2021)           »          أهلا وسهلا أليت تيم رياك (الكاتـب : رياك مشار - مشاركات : 2 - المشاهدات : 272 - الوقت: 05:58 PM - التاريخ: 07-03-2021)           »          تحميل لعبة فرايدي نايت فانكن Friday Night Funkin للكمبيوتر 2021 (الكاتـب : الادارة كريم - آخر مشاركة : admin - مشاركات : 2 - المشاهدات : 523 - الوقت: 10:41 PM - التاريخ: 07-01-2021)           »          برنامج البيع بالتقسيط مجاني مصمم بالاكسيس (الكاتـب : ابن الوليد - آخر مشاركة : admin - مشاركات : 1 - المشاهدات : 642 - الوقت: 04:37 AM - التاريخ: 06-25-2021)           »          الصحابي الجليل سعد بن معاذ الأنصاري (الكاتـب : admin - مشاركات : 0 - المشاهدات : 290 - الوقت: 01:25 AM - التاريخ: 06-25-2021)           »          كيفية صلاة الحاجة (الكاتـب : admin - مشاركات : 0 - المشاهدات : 263 - الوقت: 12:13 AM - التاريخ: 06-25-2021)           »          Format FactoryV5.7.5.0 (الكاتـب : admin - مشاركات : 0 - المشاهدات : 301 - الوقت: 11:01 PM - التاريخ: 06-24-2021)           »          رجل أقسم بأن لا يتزوج حتى يشاور مائة رجل (الكاتـب : admin - مشاركات : 0 - المشاهدات : 305 - الوقت: 09:57 PM - التاريخ: 06-24-2021)

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 05-28-2021, 03:51 AM
الصورة الرمزية الادارة كريم
الادارة كريم 
مشرف سابق
 
تاريخ التسجيل: May 2021
الدولة: مصر
المشاركات: 397
معدل تقييم المستوى: 18
الادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to beholdالادارة كريم is a splendid one to behold


افتراضي إعداد البيانات في MySQL

 

جمل الإعداد Prepared statements هي ميزه تسمح لك بتنفيذ جمل SQL سواء كانت متشابهة او مختلفة بشكل متكرر ولكن بأداء و كفاءة عالية.
جمل الإعداد Prepared statements هي حماية ممتازة ضد هجمات SQL injections.
طريقة عملها:

  • نقوم باعداد جملة SQL باستخدام prepare ليكون لدينا قالب SQL statement template يتم إرسال هذا القالب لقاعدة البيانات ولكن بدون مدخلات Parameters حيث اننا نستبدل هذه المدخلات برموز تدل عليها مثال : INSERT INTO MyGuests VALUES(?, ?, ?)
  • قاعدة البيانات سوف تستقبل هذا القالب الذي قمت بإعداده ومعالجته ، و تنفيذ بعض العمليات عليه لتحسين جملة SQL ، و يتم تخزين القالب ، و لكن بدون تنفيذ محتواه.
  • التنفيذ: في وقت لاحق في البرنامج نستطيع ربط القيم Values بالمدخلات Parameters ، و سوف تقوم قاعدة البيانات بتنفيذ جملة SQL بالقيم المدخلة ، و في برنامجك تستطيع تكرار تنفيذ جملة SQL ، و لكن بقيم مختلفة عند كل تنفيذ.
عند مقارنة فوائد عمل جمل الإعداد prepared statement ، و تنفيذ جمل SQL مباشره ممكن تلخيصه بالتالي:
  • جمل الإعداد Prepared statements تقوم بتقليل parsing time ؛ لاننا نقوم بعملية الإعداد مره واحدة فقط ، و عند تنفيذ عدة جمل SQL فان قاعدة البيانات سوف تنفذ الجملة مباشرة باستخدام القالب الذي سبق اعداداه بدون اعدادها وتجهيزها كل مرة.
  • ربط القيم بالمتغيرات يخفف كمية البيانات bandwidth المرسلة للسيرفر حيث انك سوف تقوم بارسال القيم فقط ، و ليس كامل الإستعلام query عند كل تنفيذ.
  • جمل الإعداد Prepared statements هي حماية ممتازة ضد هجمات SQL injections ، حيث انه عند إرسال القيم ، و ربطها بالمدخلات Parameters لاحقا عن طريق بروتوكول مختلف ، ليس من الضروري تجاهل تنفيذ القيم ، حيث انه لن يتم تنفيذ اي أكواد ضمن هذه المدخلات ؛ لتحميك من هجمات الحقن SQL injections ضمن قالب قمت انت بتجهيزه وإعداده بشكل يدوي ليستخدم لتنفيذ الإستعلام لاحقا.
تجهيز البيانات:
سوف نعرض جميع الأمثله لطرق كتابة جمل الإعداد Prepared statements كالتالي:
مثال على MySQLi Object-Oriented:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; // إجراء الإتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الإتصال if ($conn->connect_error) { die("فشل الإتصال: " . $conn->connect_error); } // SQL إعداد القالب لجملة $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); // ربط المتغيرات بالقيم في القالب الذي اعددناه $stmt->bind_param("ss", $name, $email); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Mohammed"; $email = "Mohammed@3alampro.com"; $stmt->execute(); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Abdullah"; $email = "Abdullah@3alampro.com"; $stmt->execute(); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Mansour"; $email = "Mansour@3alampro.com"; $stmt->execute(); echo "تم إضافة السجلات بنجاح"; // إغلاق الإتصال $stmt->close(); $conn->close(); تفصيل عمل الأكواد :
بعد عملية الإتصال بقاعدة البيانات بنجاح استخدمنا prepare لإعداد جملة SQL لنستخدمها كقالب لتخزين قيم جديدة في قاعدة البيانات جملة SQL كانت كالتالي:
INSERT INTO users (name, email) VALUES (?, ?) لاحظ انه عند بناء جملة SQL استخدمنا علامة الإستفهام ? بدلا من كتابة القيم مباشرة ثم بعدها استخدمنا bind_param لربط هذه الإستفهامات بمتغيرات كالتالي:
$stmt->bind_param("ss", $name, $email); وظيفة bind_param هي ربط المدخلات بجملة SQL ثم إخبار قاعدة البيانات بنوع كل مدخل ، لاحظ أول مدخل بالدالة عبارة عن "ss" عبارة عن نوع لكل مدخل في هذه الدالة ، وظيفة هذه الأحرف إخبار MySQL بنوع كل مدخل عند عملية ربط كل مدخل بقيمة في جملة SQL ، حيث انه لكل مدخل نعرفه بالدالة يجب ان تقوم بتعريف نوعه بواسطة حرف يدل على النوع بحيث يكون احد هذه الأحرف ولكل حرف معنى محدد
  • integer - i
  • double - d
  • string - s
  • BLOB - b
لنفرض ان لديك جدول آخر يقبل تخزين ٣ قيم لجدول ، و هم عباره عن عمودين من نوع نص ، و عمود من نوع عدد ، سيكون اول مدخل في الدالة عبارة عن "ssi" ، اي اول قيمتين نص وثالث قيمة عبارة عن عدد.
ثم بعد تعريف نوع المدخلات بواسطة اول مدخل في الدالة نعرف المدخلات المراد ربطها بعلامات الإستفهام حيث يجب ان تكون بنفس عدد الإستفهامات المعرفة بجملة SQL.
عند إخبار MySQL بنوع البيانات المتوقع تخزينها هنا نقوم بخفض نسبة خطر حدوث ثغرات SQL injections.
ملاحظة: عندما ترغب بتخزين قيم يقوم بإدخالها المستخدم لقاعدة البيانات دائما تاكد من صحة البيانات Validation وقم بتنقيحها Sanitization من أي أكواد خبيثة.
بعد عملية إعداد البيانات وربط المدخلات بجملة SQL ، نقوم بتعريف المتغيرات ، و تخزين القيم فيها ، ثم استخدام execute لتنفيذ العملية ، و تخزين هذه القيم في قاعدة البيانات ، لو اردت تخزين قيم جديدة كل ماعليك الآن هو تعريف المتغيرات بقيم جديدة ، ثم استخدام execute لعملية التنفيذ فقط.
واخيرا نستخدم close لإنهاء عملية الإعداد وقطع الإتصال بقاعدة البيانات.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:
مثال على PDO:
<?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "new-DB"; try { // إجراء الإتصال $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // تعديل نوع معالج الأخطاء $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL إعداد القالب لجملة $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); // ربط المتغيرات بالقيم في القالب الذي اعددناه $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Mohammed"; $email = "Mohammed@3alampro.com"; $stmt->execute(); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Abdullah"; $email = "Abdullah@3alampro.com"; $stmt->execute(); // تعريف المتغيرات ثم تنفيذ الإستعلام $name = "Mansour"; $email = "Mansour@3alampro.com"; $stmt->execute(); echo "تم إضافة السجلات بنجاح"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } // إغلاق الإتصال $conn = null; لاحظ: في هذا المثال استخدمنا مسميات بدل علامة الإستفهام عند بناء جملة SQL ثم استخدمنا stmt->bindParam$ لربط كل متغير باسم وهي اسهل للقراءة ومعرفة ترتيب البيانات عند الحفظ.
عند عمل الكود بالمتصفح بنجاح سيكون الناتج كالتالي:


الموضوع الأصلي : إعداد البيانات في MySQL || الكاتب : الادارة كريم || المصدر : منتدى مجمع التطوير

 

رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[شرح] إنشاء قاعدة بيانات MySQL الادارة كريم برمجة الويب web development 1 05-28-2021 04:00 AM
[شرح] تخزين البيانات في MySQL الادارة كريم برمجة الويب web development 0 05-28-2021 03:49 AM
[شرح] إنشاء الجداول في MySQL الادارة كريم برمجة الويب web development 0 05-28-2021 03:48 AM
[شرح] الإتصال بقاعدة البيانات MySQL الادارة كريم برمجة الويب web development 0 05-28-2021 03:46 AM
[شرح] مقدمة عن MySQL الادارة كريم برمجة الويب web development 0 05-28-2021 03:44 AM

 

موقع ومنتديات مجمع التطوير موقع يختص بالبرمجة والبرامج المساعدة  للتصاميم والأدوات المساعدة ,مع تقديم العون والمساعدة لكل مبرمج من خلال الأقسام المحددة , كما نعرض الأعمال الجاهزة والمفتوحة المصدر. ويهتم أيضا بالتصاميم والجرافيك وبرامجها وعرض التصاميم وملحقات التصاميم والأدوات المساعدة .كما نتمنى التوفيق لنا ولكم مع أجمل تحية مقدمة منا. 

  • الرئــيســية

  • الــمنــتـدى

  • مركز الرفع

  • التسـجـيل

  • قوانين المنتدى

  • التعـلـيمـات

  • الترقيات

check pagerank

 Flag Counter

كلمة الإدارة  منتدى مجمع التطوير غير مسئول عن أي طرح من الأعضاء فتلك الموضوعات تعبر عن رأى صاحبها ومن خلال وضع قوانين وتعليمات المشاركة بالمنتدى نسعى جاهدين لتطبيق تلك التعليمات. والمنتدى أيضا غير مسئول عن أي اتفاق مالي أو تجارى بين الأعضاء وبذلك تعد هذه الصيغة إخلاء مسئولية من جانب إدارة المنتدى وفقنا ووفقكم الله لما فيه الخير
 
الساعة الآن 09:09 AM


Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لمجمع التطوير