وباکا

آموزش تخصصی برنامه نویسی وب

جلسه سیزدهم- مروری بر دستورات مهم SQL و روش اجرای آنها در PHP

PHP  قابلیت ارتباط با انواع مختلف بانک های اطلاعاتی را دارد، با این حال استفاده از بانک اطلاعاتی MySQL در PHP خیلی معمول است زیرا هر دو رایگان هستند و می توانند در سیستم های مختلف از جمله لینوکس اجرا شوند. در این جا بانک اطلاعاتی MySQL را مورد استفاده قرار داده و روش اتصال به بانک اطلاعاتی و اجرای عملیات روی بانک اطلاعاتی را بررسی می کنیم.

مروری بر دستورات کلیدی SQL

برای اجرای عملیات مختلف باید دستورSQL مناسب را به سرویس دهنده داده ارسال کنیم تا اجرا شوند. دستوراتی که در این درس به آنها نیاز داریم عبارتند از :

SELECT– بازیابی اطلاعات از یک یا چند جدول

INSERT– درج سطر جدید

DELETE– حذف سطرها

UPDATE– بروزآوری (اصلاح) سطرها

در ادامه به معرفی اجمالی این دستورات می پردازیم:

جدول زیر را درنظر بگیرید:

tbl_fields

title

fid

Computer
IT
Mechanics

1
2
3

tbl_studs

Fid

Avgr

name

sid

1
1
2
1

17
18
15
16

Ali
Reza
Ahmad
Hadi

100
101
102
103

sid : شماره دانشجویی    name: نام دانشجو  avgr: معدل       fid: کد رشته

دستور SELECT

شکل کلی :

SELECT   نام ستون هاFROM  نام جداول   WHERE  عبارت شرطی

بازیابی کل سطرها وستون های جدول studs

Select  *  from   tbl_studs

بازیابی شماره دانشجویی و نام همه دانشجویان

Select   id , name  from     tbl_studs

بازیابی دانشجویانی که کد رشته آنها مساوی1 است.

Select * from tbl_studs   where   fid=1

دستور INSERT

Insert into  tablename( column1, column2,… )Values ( value1,value2,…  );

مقادیر از نظر تعداد و نوع داده باید متناظر با ستونها باشند.اگر قصد مقداردهی تمام ستون های جدول را داریم لازم نیست نام ستونها ذکر شود و لازم است مقادیر به ترتیبی که ستونهای جدول هستند نوشته شوند.

Insert into  tablename      Values ( value1,value2,… );

 

با فرض اینکه sid ازنوع Auto-Increment (خود افزایشی)است. می توان برای آن مقدار صفر برای آن تعیین کرده، یا مقدار آنرا ذکر نکنیم:

Insert into tbl_studs  values( 0 , ‘ali’ , 17 , 1 );Insert into tbl_studs( name , avgr ,fid )   values( ‘reza’ ,  17 , 1 ) ;

دستورDELETE

برای حذف یک یا چند سطر از جدول استفاده می شود:

DELETE FROMنام جدول   WHERE عبارت شرطی

مثال:حذف دانشجویی با شماره ی دانشجویی 10

Delete from tbl_studs where sid=10

حذف دانشجویان با معدل کمتر از 10

Delete from tbl_studs where avgr>10

دستور UPDATE

این دستور برای بروز رسانی یک یا چند سطر از جدول، بصورت زیر اجرا می شود:

UPDATE  نام جدول  SET  ستون1  = مقدار1 , ستون 2 = مقدار 2  , ….WHERE عبارت شرطی

 

اصلاح مشخصات دانشجویی با شماره ی دانشجویی 100

UPDATE tbl_studs SET  fid=2 , name=’sara’ , avgr=17.5 WHERE sid=100

به معدل دانشجویان رشته2 ، یک  نمره اضافه کند

UPDATE tbl_studs SET avgr=avgr + 1  WHERE  fid=2;

نحوه اجرای دستورات SQL در PHP

برای دسترسی به بانک اطلاعاتی و اجرای دستور بصورت زیر عملی می کنیم :

  1. یک اتصال به سرویس دهنده بانک اطلاعاتی ایجاد کرده
  2. بانک اطلاعاتی مورد نظر را انتخاب می کنیم.
  3. دستور SQL مورد نظر را روی بانک اجرا می‌کنیم.
  4. اگر دستور select اجرا شده، نتایج بدست آمده را از آن استخراج می‌کنیم.
  5. اتصال به سرویس دهنده بانک اطلاعاتی را می‌بندیم.

ایجاد اتصال به سرویس دهنده بانک اطلاعاتی

$conn = mysql_connect( servername,username,password);

 

پارامتر

کاربرد

Servername

اختیاری است نام سرویس دهنده بانک اطلاعاتی است و پیشفرض آن “localhost:3306” است

Username

اختیاری است، نام کاربر بانک اطلاعاتی است و بطور پیش فرض نام کاربرجاری استفاده کننده از سرور است

Password

اختیاری است، کلمه عبور کاربر است، پیش فرض آن “” است .

هنگام نصب MySQL بطور پیش فرض یک کاربر بنام root و بدون کلمه عبور برای آن تعریف می شود.
مثال : اتصال به بانک اطلاعاتی amoozesh روی سرویس دهنده بانک اطلاعاتی localhost با نام کاربری root بدون کلمه عبور

$conn =mysql_connect(“localhost”, “root”, “”);

در صورتی که این دستور درست اجرا نشود مقدار صفر را برمی گرداند.
2- انتخاب یانک اطلاعاتی

mysql_select_db(“amoozesh” , $conn );

3-اجرای دستور SQL
برای اجرای دستورات اس کیو ال روی بانک اطلاعاتی از دستور زیر استفاده می شود:

$result = mysql_query(دستور اس کیو ال , $conn );

مثال : بازیابی تمام سطرهای جدول studs

$result = mysql_query(“SELECT * FROM tbl_studs “, $conn );

4-استخراج نتایج پرس وجو
چنانچه دستور اجرا شده روی بانک اطلاعاتی SELECT باشد، نتیجه ان تعدادی سطر و ستون خواهد بود که برای بدست آوردن اطلاعات یک سطر دستور زیر اجرا می شود:

$row = mysql_fetch_assoc( $result );

دستور فوق یک سطر از نتیجه را استخراج کرده در آرایه انجمنی $row قرار داده و نشانگر سطرجاری را به بعدی منتقل می نماید. چنانچه دوباره این دستور اجرا شود ، سطر بعدی استخراج خواهد شد. برای استخراج همه سطرها، دستور فوق را داخل حلقه تکرار قرار می دهیم.
5- بستن یک اتصال

mysql_close($conn);

هنگام پایان یافتن اجرای اسکریپت بصورت خودکار، اتصال بسته خواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب