PDA

نسخه کامل مشاهده نسخه کامل : شروعي ساده با MySQL پایگاه داده



masoud_razor
13-07-2008, 15:33
مقدمه:
در اين مقاله سعي شده است كه اصول و مباني كار با MySQL به صورتي ساده و قابل
فهم براي كساني كه تازه شروع به كار با پايگاه‌هاي داده را كرده‌اند، گفته شود.


PHP به صورت از پيش تعريف شده، اكثر پايگاه‌هاي داده را پشتيباني مي‌كند‌: dBase,
FilePro, mSQL, MySQL,Oracle, PostgreSQL,Sybase.اگر شما بخواهيد از پايگاه‌ هاي
داده‌اي كه
به صورت از پيش تعريف شده پشتيباني نمي شوند، استفاده كنيد (مانند Access و يا
SQL Server) بايد از توابع PHP ODBC (Open DataBase Connectivity) به همراه راه‌اندازهاي
پايگاه داده (ODBC Drivers) استفاده كنيد.
MySQL يكي از انواع سرويس دهنده‌هاي پايگاه داده است كه با وجود اينكه نسبت به
ساير‌DBMS هاي موجود زياد قدرتمند نميباشد، اما به علت قيمت و عملكرد مناسب آن،
مورد استفاده گسترده قرار مي‌گيرد.

طريقه اتصال به MySQL

قبل از شروع هر كاري بايد به ‌MySQL متصل شويم. براي اين كار از دستور


<?
$Conn=mysql_connect($Location,$Username,$Password) ; ?>



استفاده مي‌كنيم. تابع mysql_connect داراي سه آرگومان مي‌باشد. آرگومان اول ،
ميزبان (Host) را مشخص مي‌كند. دو آرگومان بعدي، نام كاربري و كد رمز را براي اتصال
به پايگاه داده، ارسال مي‌كنند. در صورتي كه اتصال با شكست مواجه شود، پيغام خطايي
درbrowser نشان داده مي‌شود.
با استفاده از دستور



<? mysql_select_db($database)?>




بانك اطلاعاتي مورد نظر انتخاب خواهد شد و از اين پس كارهاي شما همه بر روي اين
بانك انجام خواهد گرفت. در صورتي كه بانك مورد نظر پيدا نشد، پيغام خطايي نشان
داده مي‌شود.

ايجاد يك بانك اطلاعاتي در MySQL



<? if (mysql_creat_db($database,$Conn)
{ print(“The database,$database,was { successfully created!<BR>n”);
else
{ print(" The database,$database, could not be created! <BR>\n”);}

?>



پس از اتصال به MySQL شما مي‌توانيد با استفاده از دستور



<? mysql_creat_db($database,$Conn); ?>



يك بانك اطلاعاتي جديد ايجاد كنيد. اين دستور شامل دو آرگومان : نام بانك اطلاعاتي
و نام لينك مورد نظربه پايگاه داده مي‌‌باشد. در صورتي كه عمل ايجاد با موفقيت
انجام شده باشد، پيغامي مبني بر اين موضوع نمايش داده مي‌شود و در غير اينصورت،
به كاربر اعلام مي‌شود كه عمليات نتيجه نداشته است.

انجام كارهاي مختلف بر روي بانك اطلاعاتي در MySQL

براي انجام كارهاي مختلف بر روي بانك اطلاعاتي ازدستورات SQL استفاده مي‌كنيم.
روند استخراج اطلاعات از يك پايگاه داده به اين صورت است كه ابتدا يك query به
زبان SQL نوشته مي‌شود وسپس اين query با استفاده ازدستور



mysql_db_query($database,$Query);



عمليات لازم را بر روي بانك اطلاعاتي انتخاب شده، انجام مي‌دهد.
فرم كلي به صورت زير است:



<?$Query=”text for the query goes here in SQL format";
if (mysql_db_query($database,$Query))
}
print( “The query was successfully executed!<BR>\n”);
{
else
}
print(“The query could not be executed!<BR>\n”);
{ ?>



· ايجاد يك جدول

براي ايجاد يك جدول ، اين query را مي نويسيم:


<?
$Query=”CREATE table $Tablename(id INT PRIMARY KEY ,
Firstname char(12), Lastname char(15))”;
?>




با استفاده ازاين query، جدول جديدي ايجاد مي‌شود كه شامل يك فيلد به نام id (
كه Primary keyاست) و فيلدي به نام Firstname از نوع كاراكتري با طول 12 و همچنين
فيلدي به نام Lastname با طول 15 مي باشد.

· ارسال داده‌ها به بانك اطلاعاتي

براي ارسال داده‌ها به بانك اطلاعاتي اين q uery را مي‌ نويسيم:




<?$Query=“INSERT into $Tablename(‘value1’, ‘value2’, ‘value3’,…)”;?>




توجه داشته باشيد كه تعداد مقاديري كه در اين q uery مشخص
مي‌شوند، بايد با تعداد ستونهاي جدول و همچنين نوع آن برابر باشد. در غيراينصورت
query كارنمي‌كند.

· بازيابي اطلاعات و نمايش آن

به قطعه كد زير توجه كنيد:



<?
$query = "SELECT * FROM $Tablename“;
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
echo \"You have $numrows user(s) in the database”;
echo \"ID number : $row[id]”;
echo \"firstname: $row[firstname]”;
echo \"Lastname: $row[lastname]”;
}
?>



در خط اول، queryاي نوشته شده است كه تمام ركوردهاي موجود درTable را انتخاب مي‌كند
و سپس در خط دوم، اين query برروي بانك اطلاعاتي اجرا مي‌شود و در خط سوم تعداد
ركوردهاي موجود درTable ، در متغيير numrows ذخيره مي‌گردد و سپس با استفاده از
حلقهً while ( كه تعداد loop آن به اندازه ركوردهاي Table است) ركوردها، خوانده
شده و نمايش داده مي‌شود.

· تغيير اطلاعات موجود در بانك اطلاعاتي
براي اين كار كافي است كه از queryاي استفاده كنيم كه در آن دستورUPDATE به كار
برده شده باشد.بطور مثال:



<?$Query=“UPDATE $Tablename SET firstname=’mina’ WHERE
firstname=’maryam’”; ?>




اين query ، اسامي موجود درTable مورد نظر را در صورتي كه برابر با mina باشد،
به maryam تغيير مي‌دهد.



نكته:
· بعد از اتمام كار، به وسيله دستور


<?mysql_close($Conn);?>




اتصال بهMySQL را قطع كنيد. اين دستور شامل يك
آرگومان است، كه همان متغيراشاره گر،به MySQL مي‌باشد.

· بيشترين اشتباهات و خطاهاي به وجود آمده، مربوط به نحوه
نوشتن queryها مي‌ باشد. چنانچه در دستورات PHP ‌، هيچ
نوع اشكال منطقي‌اي مشاهده نكرديد، q uery مورد نظر را
بررسي كنيد. به احتمال زياد مشكل حل خواهد شد.

· شما مي‌ توانيد به جاي دستور


<?mysql_db_query( );



از دستور


<?mysql_query( );?>




استفاده كنيد. البته هر كدام از اين دستورات، كاربردهاي خاص خود را دارند كه توصيه
مي‌شود براي آگاهي،h elp مربوطه را در PHP ، مطالعه بفرماييد.

· توجه داشته باشيد كه باز و بسته شدن‌هاي متعدد Database موجب به وجود آمدن
حفره‌هايي مي‌شود كه امنيت اطلاعات را به خطر مي‌اندازد ( براي آگاهي بيشتر، مي‌توانيد
از منابعي در مورد Security، استفاده كنيد.) لذا توصيه مي‌شود با دسته‌بندي مناسب
عمليات مورد نياز روي D atabase،تعداد دفعات باز و بسته شدن D atabase را به حداقل
برسانيد.

· يك نكته ساده و در عين حال جالب(مخصوص مبتدي‌‌‌ها):

يك Database و يا يك Table را نمي‌شود بيش از يك باربه وجود آورد.!! بنابراين
در صورتي كه هنگام به وجود آوردن Database و يا Tableاي ، مدام با Error برخورد
مي‌كنيد و هيچ نوع توجيه‌اي براي آن نمي‌يابيد، پيشنهاد مي‌شود كه با بررسي Mysql_Front
از وجود نداشتن Database و يا Tableمورد نظر مطمئن شويد.

masoud_razor
13-07-2008, 15:36
استفاده از mysql بخش نخست




توابع مورد کاربرد در php نسخه چهار و سی وسه()





[break]

Php 4.3.3 functions for working with mysql

*=توابعی که در این بخش راجع به آن ها صحبت خواهم کرد

**=قسمت هایی که در صورت ترجمه به اصل مطلب صدمه می خورد





*mysql_affected_rows – تعداد رکورد های تحت تاثیر قرار گرفته در آخرین پرس و جوی انجام داده را می گیرد

mysql_change_user – کاربر فعال را در ارتباط جاری با بانک اطلاعاتی را عوض میکند عوض می کند

mysql_client_encoding – تنظیمات کاراکتری پیش فرض را از ارتباط جاری را باز میگرداند

*mysql_close – ارتباع جاری با پایگاه داده را قطع میکند

*mysql_connect – یک ارتباط جدید با پایگاه داده برقرار می کند

mysql_create_db – یک بانک اطلاعاتی میسازد

mysql_data_seek – نشانگر (پیوینتر) داخلی مجموعه جواب را حرکت می دهد

mysql_db_name – اطلاعات جواب پرس و جو را می گیرد

mysql_db_query – پرس و جو را ارسال می کند

mysql_drop_db – بانک اطلاعاتی را حذف میکند

mysql_errno – شماره خطای ایجاد شده در آخرین عملیات را باز می گرداند

mysql_error – متن خطای ایجاد شده در آخرین عملیات را باز میگرداند

mysql_escape_string –یک رشته را برای کار با بانک اطلاعاتی تطبیق می کند

*mysql_fetch_array – یک مجموعه جواب بازگشتی را در آرایه ای انجمنی یا اندیسی یا هر دو می ریزد

*mysql_fetch_assoc - یک مجموعه جواب بازگشتی را در آرایه ای انجمنی می ریزد

mysql_fetch_field – اطلاعات یک ستون را از یک مجموعه جواب میگیرد و یک شی را باز میگرداند

mysql_fetch_lengths – طول هر کدام از جواب های خروجی را باز می گرداند

*mysql_fetch_object – یک مجموعه جواب را در یک شی می ریزد

*mysql_fetch_row – یک مجموعه جواب را به صورت یک آرایه شمارشی در می آورد

mysql_field_flags – نمایه فیلد معرفی شده در مجموعه جواب را باز می گرداند

mysql_field_len – طول فیلد مشخص شده را باز میگرداند

mysql_field_name – نام فیلد مشخص شده در مجموعه جواب را باز می گرداند

mysql_field_seek – نشانه گر جواب را در فیلد مبدا مشخص شده قرار می دهد

mysql_field_table – نام جدولی را که فیلد در آن قرار دارد را باز می گرداند

mysql_field_type – نوع فیلد موجود در مجموعه جواب را باز می گرداند

mysql_free_result – حافظه را از مجموعه جواب خالی می کند

mysql_get_client_info – اطلاعات خدمات گیرنده پایگاه داده را بدست می آورد

mysql_get_host_info - اطلاعات میزبان پایگاه داده را بدست می آورد

mysql_get_proto_info – پروتکل(قوانین) مورد استفاده در پایگاه داده را میگیرد نسخه

mysql_get_server_info - اطلاعات خدمات دهنده پایگاه داده را بدست می آورد

mysql_info – اطلاعاتی در مورد جدیدترین پرسش و پاسخ را باز می گرداند

*mysql_insert_id – شناسه آخرین فیلد اضافه شده را باز می گرداند

*mysql_list_dbs – بانک های اطلاعاتی موجود را نشان می دهد

*mysql_list_fields – ستون های جدول را نشان می دهد

mysql_list_processes – پردازش های انجام شده را نشان می دهد

*mysql_list_tables - لیست جدول های یک بانک اطلاعاتی را نشان می دهد

*mysql_num_fields – تعداد فیلد های یک مجموعه جواب را باز می گرداند

*mysql_num_rows - تعداد سطرهای یک مجموعه جواب را باز می گرداند

*mysql_pconnect – یک اتصال دائمی با پایگاه داده بر قرار می کند

*mysql_ping – یک ارتباط را پینگ می کند و در صورت برقرار نبودن ارتباط آنرا برقرار میسازد

*mysql_query – یک پرس و جو را ارسال میکند

mysql_real_escape_string کاراکتر های ویژه را در یک رشته برای استفاده از پایگاه داده بهینه میکند و در این عمل از تنظیمات کاراکتری موجود در پایگاه داده استفاده می کند.

*mysql_result - اطلاعات مجموعه جواب را باز میگرداند

*mysql_select_db – یک بانک اطلاعاتی را نتخاب می کند

mysql_stat – وضعیت سیستم جاری را باز می گرداند

mysql_tablename – نام جدول فیلد را باز میگرداند

**mysql_thread_id –جاری را باز می گرداند thread شناسه

mysql_unbuffered_query – یک پرس و جو را بدون واسطه به پایگاه داده ارسال می کند