العودة   منتديات عشاق السودان > منتديات الكمبيوتر والإنترنت > منتدى تطوير المواقع والمنتديات
التسجيل مستضيف الصور التعليمـــات قائمة الأعضاء التقويم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع
قديم 30-05-2007, 14:26   رقم المشاركة : 1 (permalink)
معلومات العضو
Silent Storm
المشرف العام
 
الصورة الرمزية Silent Storm
 

 

 
إحصائية العضو









Silent Storm غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
Silent Storm تم تعطيل التقييم

 

 

إنشاء بريمج للاتصال بقواعد البيانات

السلام عليكم

هدف هذا المقال هو تصميم طبقة لتجريد البيانات لاستخدامها مع قواعد البيانات ، (Data Abstraction Layer (DAL)،،، لكي نتفادي تعقيدات الـMySQL ونركز على برنامجنا الأساسي ،، أيضا لنجعل شفرة (كود) برنامجنا مرتبا ونظيف واحترافي.



لمن هذا الدرس:

لكل من يحسن التعامل مع لغة الـPHP و الـMySQL.

لديك إلمام بالـOOP "البرمجة الكائنية التوجه"(المام بسيط )



الغرض من هذا المقال

غرضنا هو كما أسلفنا إنشاء بريمج يريحنا من تعقيدات الـMySQL ، كالاتصال والاستعلام ، مع وضع خوارزمية مثالية في الاتصال والاغلاق لكي نحصل على أفضل أداء لبرنامجنا ولنتصيد الأخطاء بكل سهولة ويسر ونحافظ على ترتيب ونظافة كود برنامجنا.



تعريف الكائنات (Object)

الكائن التعريفي الخاص بقاعدة البيانات الخاصة بنا سيشمل المتغيرات المحلية local variable والبنية constructor.



اولاً المتغيرات المحلية Local Variables:

نحن سنحتاج المتغيرات المحلية لمراقبة معلومات اتصالاتنا و استعلاماتنا بالإضافة لتتبع اي اتصلات مفتوحة تركناها.



سوف نبداء بالفئة "class" الخاصة بقواعد البيانات ،،، نحتاج فقط الى تعريف الفئة "class" و المتغيرات:

كود PHP:
class Database
{
 var 
$database_host;     
 var 
$database_name;
 var 
$database_user;
 var 
$database_pass;
 var 
$database_link;

الآن سوف ننتقل الى البنية
سوف نقم باعطاء قيم متغيرات معلومات الاتصال الخاصة بناء بقاعدة البيانات.

كود PHP:
function Database()
    {
        
$this->database_user "root";
        
$this->database_pass "";
        
$this->database_host "localhost";
        
$this->database_name "phpsd";
    } 

حان وقت كتابة دوال التحكم بمعلومات الاتصال

كود PHP:
function changeUser($user)
    {
        
$this->database_user $user;
    }
    
    function 
changePass($pass)
    {
            
$this->database_pass $pass;
    }
    
    function 
changeHost($host)
    {
        
$this->database_host $host;
    }
    
    function 
changeName($name)
    {
        
$this->databse_name $name;
    }
 
    function 
changeAll($user$pass$host$name)
    {
        
$this->database_user $user;
        
$this->database_pass $pass;
        
$this->database_host $host;
        
$this->database_name $name;
    } 
حقيقةً لقد أمسكنا بالكرة الآن

الآن يجب ان نبدا بتأسيس الاتصال :
كود PHP:
function connect()
    {
        
$this->database_link mysql_connect($this->database_host$this->database_user$this->database_pass) or die("غير قادر على الاتصال ");
        
mysql_select_db($this->database_name) or die ("غير قادر على فتح قاعدة البيانات التس اسمها "$this->database_name);        
    } 
لإغلاق الاتصال :
كود PHP:
function disconnect()
    {
        if(isset(
$this->database_link)) mysql_close($this->database_link);
        else 
mysql_close();    
    } 
قبل أن نبدا بالاستعلام يجب أولا أن نتاكد من أن اتصالنا تم بنجاح مع قاعدة البيانات

كود PHP:
function query_chk($qry)
    {
        if(!isset(
$this->database_link)) $this->connect();
        
$temp mysql_query($qry$this->database_link) or die("خطأ: "mysql_error());        
    } 
والآن


كود PHP:
function query($qry)
    {
        if(!isset(
$this->database_link)) $this->connect();
        
$result mysql_query($qry$this->database_link) or die("Error: "mysql_error());
        
$returnArray = array();
        
$i=0;
        while (
$row mysql_fetch_array($resultMYSQL_BOTH))
            if (
$row)
     
$returnArray[$i++]=$row;
mysql_free_result($result);
        return 
$returnArray;
    }

الان اصبح لدينا البريمج جاهز للعمل وهذا مثال له :

كود PHP:
<?php
// مكان ملف البريمج
include("database_class.php");
 
// التعريف الابتدائي
$db = new Database();
// الاستعلام
$q $db->query("SELECT * FROM users WHERE email= mail@php.sd");
 
 
echo 
'<table><tr><th>UserID</th><th>UserName</th>';
echo 
'<th>RealName</th><th>E-mail</th></tr>';
foreach(
$q as $user)
{
    echo 
'<tr><td>'.$user['userid'].'</td><td>'.$user['username'].'</td>';
    echo 
'<td>'.$user['realname'].'</td><td>'.$user['email'].'</td></tr>';
}
echo 
"</table>";
// by M.Aljaaly 
// mail@php.sd
?>
أتمنى أكن قد أفدتكم

التوقيع

Silent Storm غير متواجد حالياً   رد مع اقتباس
قديم 07-06-2007, 17:29   رقم المشاركة : 2 (permalink)
معلومات العضو
demon
عضو مميز
 
الصورة الرمزية demon
 

 

 
إحصائية العضو








demon غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 20
demon is on a distinguished road

 

 

مشاركة: إنشاء بريمج للاتصال بقواعد البيانات

السلام عليكم ...

رغم انني غير ملم بي البي اتش بي الا انني اري ان الكود السابق مثالي
ولي فيه بعض الملاحظات من الناحيه الامنيه مثل انك::

قمت بتعريف متغيرات الاتصال من سيرفر ويوزر وباسويرد في داله ومن ثم قمت بمنادات الداله داخل البرنامج
اوكي كل هذا جميل لكن ماذا اذا ضرب الاتصال في اي لحظه هل سيحدث كما يحدث مع اي اس بي ان يعرض الخطاء علي الشاشة وفي هذه الحاله سيعرض معلومات الاتصال للعيان..

بعدين انته عملته دوال لي تغيير بيانات المستخدم وعملته تغيير بي الفعل لكن لم تقوم بعمل اي شرط في هذه العمليه اقترح ان تقوم باضافة شرط لتعديل ريكورد اليوزر المراد التعديل عليه فقط..
بالاضافه الي انه من الناحيه الامنيه يجب عند استعمال مثل هذه الدوال عمل شيك لي سيشن اليوزر في الاول لكي لا يقوم احد بعمل صفحة ومن ثم منادات هذه الدوال بشكل خارجي ...

هذه كلها مجرد اقتراحات فانت كما تعلم يا محمد انه خبرتي في البي اتش بي ضعيفه شديد

التوقيع

demon غير متواجد حالياً   رد مع اقتباس
رد


أدوات الموضوع
طرق مشاهدة الموضوع

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

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


الساعة الآن: 02:11


Powered by vBulletin® Version 3.6.8, Copyright ©2000 - 2008, Tranz By Almuhajir
جميع الآراء والتعليقات المطروحة تمثل وجهة نظر كاتبها وليس بالضرورة وجهة نظر الموقع
SudaBest.net SudaBest.net

Search Engine Optimization by vBSEO 3.2.0 RC5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97