راهنما گام به گام PHP و MYSQL

ارسال شده توسط administrator
17. جانفييه 2012 22:37

 

Mysql پرطرفدارترین سیستم پایگاه داده متن باز است.

Mysql چیست؟

·         سیستم پایگاه داده متن باز

·         مانند بیشتر سیستم های مدیریت پایگاه داده مدرن مبتنی بر مدل رابطه ای، RDBMS، است.

·         روی لینوکس، ویندوز، Netware، AIX و غیره اجرا می شود.

·         با زبانهایی مانند PHP به اسانی در دسترس است.

چرا Mysql؟

·         پایگاه داده متن باز است.

·         کارایی و درجه اطمینان بالا

·         سهولت استفاده

·         دسترس پذیری زیاد(high-availability)

·         طراحی برنامه جامع

·         سهولت مدیریت

·         هزینه خیلی پایین خرید

نحوه دریافت

·         برای دانلود به سایت رسمی ان mysql.com مراجعه کنید

 

اتصال به پایگاه داده

در این بخش با تابع mysql_connect() آشنا می شویم. از این تابع برای اتصال به پایگاه داده Mysql استفاده می شود.

ساختار تابع:

1

mysql_connect(host name, user name, password)

mysql_connect() در صورت موفقیت true را بر می گرداند در غیر این صورت false را. مثال:

01

<?

02

//the example of MySQL database connection

 

03

//connect.php

04

$continued = mysql_connect("localhost","root","admin");

 

05

if ($continued) {

06

    echo ("Connection is succeed")

 

07

} else {

08

    echo ("Connection is fail")

 

09

}

10

?>

 

ساخت پایگاه داده

از تابع Mysql_create_db()  برای ساخت پایگاه داده استفاده می کنیم. معمولا، پایگاه داده را در برنامه استفاده می کنیم و دارای یک یا چند جدول است.

ساختار Mysql_create_db()

1

mysql_create_db("database")

فایلی به نام Create.php داخل پوشه www بسازید و کد زیر را وارد کنید:

01

<?

02

//the example of making MySQL database

 

03

//create.php

04

$continued = mysql_connect("localhost","root","admin");

 

05

if($continued){

06

    echo("Connection is succeed");

 

07

}else{

08

    echo("Connection is fail");

 

09

}

10

$make = mysql_create_db("data_root");

 

11

if($make){

12

    echo("<br><br>Database data_root succeeds in making");

 

13

}else{

14

    echo("<br><br>Database data_root fails in making");

 

15

}

16

?>

ساخت جدول

PHP تابع مخصوصی برای ساخت جدول با فیلدهای معین ندارد. بنابراین برای ساخت جدول داده، از دستور برنامه پایگاه داده مانند MySQL استفاده می شود، این دستور با تابع mysql_query() اجرا می شود.

برای مثال، پایگاه داده Employee برای یک دفتر را ساخته، یک جدول با ستون های employee number، employee name و  employee address می سازیم.

فایلی به نام Create_table.php داخل www بسازید. کد زیر را در ان کپی کنید:

01

<?

02

//the example of making MySQL database table

 

03

//create_table.php

04

$continued = mysql_connect("localhost","root","admin");

 

05

if($continued){

06

    echo("Connection is succeed");

 

07

}else{

08

    echo("Connection is fail");

 

09

}

10

$make = mysql_create_db("employees");

 

11

if($make){

12

    echo("<br><br>Employees database succeeds in making");

 

13

}else{

14

    echo("<br><br>Employees database fails in making");

 

15

}

16

$order1 = "CREATE TABLE data_employees

 

17

    (

18

        employees_number int(10)AUTO_INCREMENT PRIMARY KEY,

 

19

        name char(100),

20

        address varchar(255)

 

21

    )";

22

$make_table = mysql_db_query("employees",$order1);

 

23

if($make_table){

24

    echo("<br><br>Table data_employees succeeds in making");

 

25

}else{

26

    echo("<br><br>Table data_employees fails in making");

 

27

}

28

?>

نوع داده فیلد ها

نوع داده عددی

نوع داده

Gyration assess

TINYINT

(-128) - 127 or 0 - 255

SMALLINT

(-32768) - 32767 or 0 - 65535

MEDIUMINT

(-8388608) - 8388607 or 0 - 16777215

INT

(-2147683648) - 2147683647 or 0 - 4294967295

BIGINT

(-9223372036854775808) - 9223372036854775807 or 0 - 18446744073709551615

FLOAT(X)

(-3.402823466E+38) - (-1.175494351E-38), 0, and 1.175494351E-38 - 3.402823466E+38.

FLOAT

The same as above

DOUBLE

(-1.7976931348623157E+308) - (-2.2250738585072014E-308), 0, and 2.2250738585072014E-308 - 1.7976931348623157E+308

 

میزان حافظه مورد نیاز متغیر ها در جدول زیر امده است:

نوع داده

حافظه مورد نیاز

TINYINT

1 byte

SMALLINT

2 bytes

MEDIUMINT

3 bytes

INT

4 bytes

INTEGER

4 bytes

BIGINT

8 bytes

FLOAT(X)

4 ifX <=24 or 8 if 25 <=X <=53

FLOAT

4 bytes

DOUBLE

8 bytes

DOUBLE PRECISION

8 bytes

REAL

8 bytes

DECIMAL(M,D)

M+2 bytes if D>0, M+1 bytes if D=0(D+2, if M<d)< td=""></d)<>

NUMERIC(M,D)

M+2 bytes if D>0, M+1 bytes if D=0(D+2, if M<d)< td=""></d)<>

نوع داده رشته ای

نوع داده

Gyration assess

CHAR

1-255 character

VARCHAR

1-255 character

TINYLOB, TINYTEXT

1-255 character

BLOB, TEXT

1-65535 character

MEDIUMLOB, MEDIUMTEXT

1-16777215 character

LONGLOB, LONGTEXT

1-4294967295 character

ENUM('element1','element2',...)

Maximal 65535 character

SET('element1','element2',...)

Maximal 64 element

میزان حافظه مورد نیاز:

نوع داده

حافظه مورد نیاز

CHAR(M)

M bytes, 1 <=M <=255

VARCHAR(M)

L+1 bytes, L <=M and 1 <=M <=255

TINYLOB, TINYTEXT

L+1 bytes, L <2^8

BLOB, TEXT

L+2 bytes, L<2^16

MEDIUMLOB, MEDIUMTEXT

L+3 bytes, L<2^24

LONGBLOB, LONGTEXT

L+4 bytes, L<2^32

ENUM('element1','element2',...)

1 or 2 bytes, depend to the number of element

SET('element1','element2',...)

1, 2, 3, 4 or 8 bytes, depend to the number of element

 

نوع داده تاریخ

نوع داده

Gyration assess

DATETIME

'1000-01-01 00:00:00' to '9999-12-31 23:59:59'

DATE

'1000-01-01' to '9999-12-31'

TIMESTAMP

'1970-01-01 00:00:00' - 2037

TIME

'-838:59:59' to '838:59:59'

YEAR

1901 - 2155

میزان حافظه مورد نیاز:

 

نوع داده

حافظه مورد نیاز

DATE

3 bytes

DATETIME

8 bytes

TIMESTAMP

4 bytes

TIME

3 bytes

YEAR

1 bytes

 

درخواست های Mysql

PHP برای کار با داده پایگاه داده تابع خاصی را ارائه نداده است. بنابراین باید از دستورات Mysql استفاده کرد. برای انجام عملیات های داده ای این کارها را باید انجام دهید:

1.      به پایگاه داده متصل شوید.

2.      با استفاده از تابع mysql_query() دستور Mysql را اجرا کنید. با استفاده از توابع mysql_fetch_array()، mysql_fetch_row() و mysql_num_rows نتیجه را پردازش کنید.

افزودن داده

برای افزودن داده به پایگاه داده از این دستور استفاده کنید:


INSERT INTO nama_table (field1,field2,...) VALUES ('data1','data2',...)

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

مثال

01

<?

02

//the example of inserting data

 

03

//data_insert.php

04

mysql_connect("localhost","root","admin");//database connection

 

05

mysql_select_db("employees");

06

$order = "INSERT INTO data_employees

 

07

            (name, address)

08

            VALUES

 

09

            ('H.R. Dian',

10

            'Jl. Raya Baru KOTABARU')";

 

11

//inserting data order

12

                         

 

13

//declare in the order variable

14

$result = mysql_query($order);

 

15

if($result){

16

    echo("<br>Input data is succeed");

 

17

}else{

18

    echo("<br>Input data is fail");

 

19

}

20

?>

تابع mysql_fetch_row()

تابع mysql_fetch_row() داده را از متغیر $result خط به خط می گیرد. اولین خروجی بالاترین خط است. داده ای که این تابع بر می گرداند به صورت آرایه است به طوری که عناصر آرایه همان فیلد های جدول داده هستند.

تابع mysql_fetch_array()

علاوه بر تابع mysql_fetch_row()، می توان از تابع mysql_fetch_array() هم استفاده کرد. همانند تابع mysql_fetch_row() این تابع هم یک خط داده را می خواند.

تفاوت دو تابع در این است که نتایج بازگشتی با mysql_fetch_array() به صورت آرایه associative است.

ویرایش داده

برای ویرایش داده از دستور زیر می توان استفاده کرد:

1

UPDATE name_table SET field1=new_value, field2=new_value, ...

2

WHERE condition1,condition2, ...

حذف داده

برای حذف داده از دستور زیر استفاده می شود:

DELETE FROM name_table WHERE condition1,condition2,...

اضافه کردن ستون به جدول

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

ALTER TABLE table_name ADD field_name field_type field_attribute

 

ویرایش ستون ها جدول

گاهی نیاز است مثلا ستون از نوع char  به varchar تبدیل شود و یا طول ستونی با اندازه 50 باید به 100 تغییر کند. برای این منظور از دستور زیر استفاده می شود:

ALTER TABLE table_name MODIFY field_name field_type field_attribute

مثال: نوع داده ستون position را تغییر می دهیم:

01

<?

02

//the example of changing MySQL database field table

 

03

//change_field.php

04

 

 

05

//database connection

06

mysql_connect("localhost","root","admin");

 

07

mysql_select_db("employees");

08

 

 

09

$order1 = "ALTER TABLE data_employees MODIFY position char(50)";

10

$add_field = mysql_db_query("employees", $order1);

 

11

if ($add_field){

12

    echo ("<br><br>Field position succeeds in adding");

 

13

}else{

14

    echo ("<br><br>Field position fails in adding");

 

15

}

16

?>

حذف ستون از جدول

برای حذف ستون از جدول:

ALTER TABLE table_name MODIFY field_name field_type field_attribute

برای مثال ستون position را حذف می کنیم:

01

<?

02

//the example of deleting MySQL database field table

 

03

//delete_field.php

04

mysql_connect("localhost","root","admin");//database connection

 

05

mysql_select_db("employees");

06

$order1 = "ALTER TABLE data_employees DROP position";

 

07

$add_field = mysql_db_query("employees", $order1);

08

if ($add_field){

 

09

    echo ("<br><br>Field position succeeds in deleting");

10

}else{

 

11

    echo ("<br><br>Field position fails in deleting");

12

}

 

13

?>

 

 

 

 

تگ ها:

دسته بندی ها: مقالات PHP | مقالات MySQL