در این مقاله سعی شده است که اصول و مبانی کار با MySQL به صورتی ساده و قابل
فهم برای کسانی که تازه شروع به کار با پایگاههای داده را کردهاند، گفته شود.
PHP به صورت از پیش تعریف شده، اکثر پایگاههای داده را پشتیبانی میکند: dBase,
FilePro, mSQL, MySQL,Oracle, PostgreSQL,Sybase.اگر شما بخواهید از پایگاه های
دادهای که
به صورت از پیش تعریف شده پشتیبانی نمی شوند، استفاده کنید (مانند Access و یا
SQL Server) باید از توابع PHP ODBC (Open DataBase Connectivity) به همراه راهاندازهای
پایگاه داده (ODBC Drivers) استفاده کنید.
MySQL یکی از انواع سرویس دهندههای پایگاه داده است که با وجود اینکه نسبت به
سایرDBMS های موجود زیاد قدرتمند نمیباشد، اما به علت قیمت و عملکرد مناسب آن،
مورد استفاده گسترده قرار میگیرد.
طریقه اتصال به MySQL
قبل از شروع هر کاری باید به MySQL متصل شویم. برای این کار از دستور
[PHP]<?
$Conn=mysql_connect($Location,$Username,$Password) ; ?>
[/PHP]
استفاده میکنیم. تابع mysql_connect دارای سه آرگومان میباشد. آرگومان اول ،
میزبان (Host) را مشخص میکند. دو آرگومان بعدی، نام کاربری و کد رمز را برای اتصال
به پایگاه داده، ارسال میکنند. در صورتی که اتصال با شکست مواجه شود، پیغام خطایی
درbrowser نشان داده میشود.
با استفاده از دستور
[PHP]
<? mysql_select_db($database)?>
[/PHP]بانک اطلاعاتی مورد نظر انتخاب خواهد شد و از این پس کارهای شما همه بر روی این
بانک انجام خواهد گرفت. در صورتی که بانک مورد نظر پیدا نشد، پیغام خطایی نشان
داده میشود.
ایجاد یک بانک اطلاعاتی در MySQL
[PHP]
<? 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”);} ?>
[/PHP]
پس از اتصال به MySQL شما میتوانید با استفاده از دستور
[PHP]
<? mysql_creat_db($database,$Conn); ?>
[/PHP]
یک بانک اطلاعاتی جدید ایجاد کنید. این دستور شامل دو آرگومان : نام بانک اطلاعاتی
و نام لینک مورد نظربه پایگاه داده میباشد. در صورتی که عمل ایجاد با موفقیت
انجام شده باشد، پیغامی مبنی بر این موضوع نمایش داده میشود و در غیر اینصورت،
به کاربر اعلام میشود که عملیات نتیجه نداشته است.
انجام کارهای مختلف بر روی بانک اطلاعاتی در MySQL
برای انجام کارهای مختلف بر روی بانک اطلاعاتی ازدستورات SQL استفاده میکنیم.
روند استخراج اطلاعات از یک پایگاه داده به این صورت است که ابتدا یک query به
زبان SQL نوشته میشود وسپس این query با استفاده ازدستور
[PHP]
mysql_db_query($database,$Query);
[/PHP]عملیات لازم را بر روی بانک اطلاعاتی انتخاب شده، انجام میدهد.
فرم کلی به صورت زیر است:
[PHP]
<?$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”);
{ ?>
[/PHP]
· ایجاد یک جدول
برای ایجاد یک جدول ، این query را می نویسیم:
[PHP]<?
$Query=”CREATE table $Tablename(id INT PRIMARY KEY ,
Firstname char(12), Lastname char(15))”;
?>
[/PHP]
با استفاده ازاین query، جدول جدیدی ایجاد میشود که شامل یک فیلد به نام id (
که Primary keyاست) و فیلدی به نام Firstname از نوع کاراکتری با طول ۱۲ و همچنین
فیلدی به نام Lastname با طول ۱۵ می باشد.
· ارسال دادهها به بانک اطلاعاتی
برای ارسال دادهها به بانک اطلاعاتی این q uery را می نویسیم:
[PHP] <?$Query=“INSERT into $Tablename(‘value1’, ‘value2’, ‘value3’,…)”;?>
[/PHP]
توجه داشته باشید که تعداد مقادیری که در این q uery مشخص
میشوند، باید با تعداد ستونهای جدول و همچنین نوع آن برابر باشد. در غیراینصورت
query کارنمیکند.
· بازیابی اطلاعات و نمایش آن
به قطعه کد زیر توجه کنید:
[PHP]
<?
$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]”;
}
?>
[/PHP]
در خط اول، queryای نوشته شده است که تمام رکوردهای موجود درTable را انتخاب میکند
و سپس در خط دوم، این query برروی بانک اطلاعاتی اجرا میشود و در خط سوم تعداد
رکوردهای موجود درTable ، در متغییر numrows ذخیره میگردد و سپس با استفاده از
حلقهً while ( که تعداد loop آن به اندازه رکوردهای Table است) رکوردها، خوانده
شده و نمایش داده میشود.
· تغییر اطلاعات موجود در بانک اطلاعاتی
برای این کار کافی است که از queryای استفاده کنیم که در آن دستورUPDATE به کار
برده شده باشد.بطور مثال:
[PHP][/PHP]<?$Query=“UPDATE $Tablename SET firstname=’mina’ WHERE
firstname=’maryam’”; ?>
این query ، اسامی موجود درTable مورد نظر را در صورتی که برابر با mina باشد،
به maryam تغییر میدهد.
نکته:
· بعد از اتمام کار، به وسیله دستور
[PHP]
<?mysql_close($Conn);?>
[/PHP]اتصال بهMySQL را قطع کنید. این دستور شامل یک
آرگومان است، که همان متغیراشاره گر،به MySQL میباشد.
· بیشترین اشتباهات و خطاهای به وجود آمده، مربوط به نحوه
نوشتن queryها می باشد. چنانچه در دستورات PHP ، هیچ
نوع اشکال منطقیای مشاهده نکردید، q uery مورد نظر را
بررسی کنید. به احتمال زیاد مشکل حل خواهد شد.
· شما می توانید به جای دستور
[PHP]
<?mysql_db_query( );
[/PHP]
از دستور
[PHP]
<?mysql_query( );?>
[/PHP]
استفاده کنید. البته هر کدام از این دستورات، کاربردهای خاص خود را دارند که توصیه
میشود برای آگاهی،h elp مربوطه را در PHP ، مطالعه بفرمایید.
· توجه داشته باشید که باز و بسته شدنهای متعدد Database موجب به وجود آمدن
حفرههایی میشود که امنیت اطلاعات را به خطر میاندازد ( برای آگاهی بیشتر، میتوانید
از منابعی در مورد Security، استفاده کنید.) لذا توصیه میشود با دستهبندی مناسب
عملیات مورد نیاز روی D atabase،تعداد دفعات باز و بسته شدن D atabase را به حداقل
برسانید.
· یک نکته ساده و در عین حال جالب(مخصوص مبتدیها):
یک Database و یا یک Table را نمیشود بیش از یک باربه وجود آورد.!! بنابراین
در صورتی که هنگام به وجود آوردن Database و یا Tableای ، مدام با Error برخورد
میکنید و هیچ نوع توجیهای برای آن نمییابید، پیشنهاد میشود که با بررسی Mysql_Front
از وجود نداشتن Database و یا Tableمورد نظر مطمئن شوید.
گردآورنده: طه