មេរៀនទី៨: PHP- ការដំឡើង MySql

មេរៀនទី៨: PHP- ការដំឡើង MySql

1. What is MySql ? .

MySql គឺជាប្រភេទ Open Source Sql databases management system ដែលមានប្រជាប្រិយបំផុតសំរាប់

ការប្រើប្រាស់ ដោយត្រូវបានអភិវឌ្ឍន៍និងគាំទ្រដោយ MySQL AB ។ MySQL AB គឺជាក្រុមហ៊ុនដែលបង្កើតឡើង ដោយក្រុមអ្នកអភិវឌ្ឍន៍ MySql ។

1.1 MySQL is a relational database management system. .

A relation databases គឺរក្សាទុកនូវទិន្នន័យក្នុង table ផ្សេងពីគ្នាដែល មានលក្ខណៈ ប្រសើរ ជាង ការរក្សាទុកនូវទិន្នន័យទាំងអស់នៅក្នុង storeroom ដ៏ធំមួយ ហើយវិធីនេះអាចជួយ បង្កើនល្បឿន និង មានភាពងាយស្រួលប្រើកាន់តែប្រសើរឡើងជាមួយ នឹងទិន្នន័យ ។ SQL គឺជាបំណែកមួយនៃ MySQL ដែល ប្រើ ជាពាក្យពេញថា “Structured Query Language” SQL គឺជាភាសាដែលប្រើប្រាស់ជា standard ដើម្បី access ទៅកាន់ databases ហើយត្រូវបានកំណត់ដោយ ANSI/ISO SQL Standard ។SQL standard ត្រូវបានវិវត្ដន៍ឡើងនៅក្នុងអំឡុងឆ្នាំ ១៩៨៦ ដែលបង្កើតបានជា ជំនាន់ របស់ SQL-92 ដោយសំដៅទៅលើ SQL standard ដែលធ្វើការដាក់ចេញនូវជំនាន់ របស់ខ្លួននៅ ក្នុងអំឡុុងឆ្នាំ ១៩៩២ និង បន្ទាប់មកគឺ SQL-1999 និងក្រោយមកទៀតគឺ SQL-2003 ។

1.2 MySQL software is Open Source. .

Open Source គឺមានន័យថាអ្នកប្រើប្រាស់មានលទ្ធភាពកែប្រែនូវ software នោះបាន ហើយ អាច ទាញយកនូវ Software ទាំងនោះនៅលើ Internet និងអាចប្រើប្រាស់វា ដោយមិនមាន ការបង់ ប្រាក់ ទៅលើសេវាកមអ្វីទាំងអស់ ។ MySQL software ប្រើប្រាស់ GPL( General Public License ) ដើម្បីផ្ដល់អោយអ្នកនូវអ្វីដែលត្រូវការ និង អ្វីដែលអ្នកមិនត្រូវការចំពោះ software នេះ ។ គឺមានន័យថា ប្រសិនបើអ្នកមិនមានអារមណ៍ទុកចិត្ដ ជាមួយនិឹង GPL ឬ អ្នកចង់បង្កប់នូវកូដទៅក្នុង MySQL ដើម្បីធ្វើជាCommercial application អ្នកអាចទិញនូវច្បាប់អនុញ្ញាតិអោយធ្វើពានិជ្ជកមពីក្រុមហ៊ុន MySQL ដែល

ពត៌មានលំអិតអ្នកអាចប្រើប្រាស់នូវគេហទំព័រ (http://www.mysql.com/company/legal/licensing/) ។

2. SQL commands in mysql .

ផ្នែកខាងក្រោមនឹងបង្ហាញពីការប្រើប្រាស់ SQL commands នៅក្នុង MySQL context ។ គ្រប់ commands ទាំងអស់សុទ្ធតែបានទទួលស្គាល់ដោយ MySQL system ក្នុងអំឡុងពេលដែល design SQL databases environment ។ command របស់ MySQL និមួយៗត្រូវតែបញ្ចប់ជាមួយនឹងសញ្ញា Semicolon ( ; ) ។

show databases គឺជា command ដំបូងដែលប្រើដើម្បីបង្ហាញនូវឈេμាះ database ទាំងអស់ដែលមាននៅក្នុង MySQL ក្នុងនោះមាន database ចំនួនពីរភ្ចាប់មកស្រាប់ជាមួយ MySQL package។

mysql> show databases;

+———-+

| Database |

+———-+

| mysql |

| test |

+———-+

2 rows in set (0.00 sec)

Database ដែលមានឈោះថា mysql ផ្ទុកនូវ MySQL settings ហើយនិង users ផ្សេងៗ ។សំរាប់ជាឧទាហរណ៍

យើងនឹងបង្កើត database មួយឈោះថា BbuDb ។

create database databaseName ;

syntax : mysql>create database BbuDb ; .

យើងអាចពិនិត្យមើល database ដែលបានបង្កើតខាងលើដោយប្រើប្រាស់ show database command។

.mysql> show databases;

+————+

| Database |

+————+

| mysql |

| BbuDb |

| test |

+————+

3 rows in set (0.00 sec)

ដើម្បីលប់នូវ database ណាមួយនោះអ្នកអាចប្រើ SQL command : drop database databaseNameអ្នកគួរប្រុងប្រយ័ត្នផងដែរ

ចំពោះការប្រើប្រាស់ command នេះ ពីព្រោះវានឹងធ្វើការលប់ database ដោយមិនមានការសាកសួរ ឬ ធ្វើការបញ្ជាក់ពី

អ្នកម្ដងទៀតឡើយ។SQL syntax ដែលប្រើដើម្បីបង្កើត table យើងនឹងបង្ហាញជាមួយឧទាហរណ៍ខាងក្រោម ប៉ន្ដែមុនពេលដែលប្រើ

command នេះអ្នកត្រូវតែកំណត់នូវ database មួយអោយជាក់លាក់ជាមុនសិន ដោយប្រើ command use:

mysql>use BbuDb ;។ យើងនិឹងប្រើ command ដើម្បីបង្កើត table ដែលមានattributes ដូចជា id , username , password , name និង email ជាមួយនឹងឧទាហរណ៍ខាងក្រោម ។The general form of the syntax is:.

create table tableName ( col1Name datatype otherSettings, etc) >

.mysql> create table tblpeople

( id int(5) not null auto_increment ,

username varchar(20) binary not null,

password varchar(20) binary not null,

name varchar(20) not null,

email varchar(30) not null,

primary key(id)

); .

រាល់ attribute និមួយៗសុទ្ធតែត្រូវបានកំណត់នូវចំំនួនតួអក្សរដែលត្រូវរក្សាទុកនៅក្នុង table ហើយ fieldនិមួយៗនៃ table សុទ្ធតែទាមទារអោយមាននូវតំលៃជានិច្ច ។ ចំណែកឯ id attribute តំលៃរបស់វានិឹងត្រូវកើនឡើងដោយស្វ័យប្រវត្ដិនៅពេល

ដែលទិន្នន័យត្រូវបានបញ្ចូលទៅកាន់ tblpeople មួយលើកៗ ។varchar គឺជាតំលៃដែលប្រើជាតួអក្សរ ឬជាតួលេខ ចំណែកឯ binary គេប្រើដើម្បីធ្វើអោយតំលៃ ទៅជា case-sensitive រីឯ name ហើយ និង email attribute គឺមិនត្រូវបានប្រើ binary នោះទេ ដូច្នេះវាមិនមានលក្ខណៈ case-sensitive ឡើយ ។ id គឺត្រូវបានបង្កើតជា primary key សំរាប់ table ដើម្បី

identify row និមួយៗនៃ table ។

mysql> desc tblpeople ;

+———-+————-+——+—–+———+————–+.

| Field | Type | Null | Key | Default | Extra |

+———-+————-+——+—–+———+————–+

| id | int(5) | | PRI | NULL |auto_increment

| username | varchar(20) | | | |

| password | varchar(20) | | | |

| name | varchar(20) | | | |

| email | varchar(30) | | | |

+———-+————-+——+—–+———+————–+

5 rows in set (0.01 sec).

បន្ទាប់ពីមកទៀតអ្នកអាចប្រើប្រាស់ insert command ដើម្បីបញ្ចូលទិន្នន័យទៅក្នុង table ។

ឧទាហរណ៍ៈ

mysql>insert into tblpeople values (null, ‘muth’, ‘ muth07 ‘, ‘monen’, ‘ muth_monen@hotmial.com ‘);

mysql>insert into tblpeople values(null, ‘lou’, ‘ army ‘, ‘ lou cy ‘, ‘ lou_cy@gmail.com ‘); .

នៅពេលដែល id attribute ជា auto_increment យើងប្រើ null សំរាប់ជា data entry ដែល null Value មិនមានលក្ខណៈដូចនឹង blank (” “) នោះទេ ។ id attribute ចាប់ផ្ដើមដោយតំលៃជា integer 1 ហើយវានឹងធ្វើការបង្កើនតំលៃ ១ នៃនៅពេលដែលមានការបញ្ជូលទិន្នន័យទៅកាន់ row ថីម្ដងៗ។ អ្នកអាចពិនិត្យមើលពត៌មាន ទាំងអស់ដែលមាននៅក្នុង tableបន្ទាប់ពីបានបញ្ចូលដោយប្រើប្រាស់ SQL command mysql>select * from tblpeople ; .

+—-+———-+———-+————+———————+

| id | username | password | name | email |

+—-+———-+———-+————+———————+

| 1 | muth | muth07 | monen |muth_monen@hotmail.com |

| 2 | lou | army | lou cy |lou_cy@gmail.com |

+—-+———-+———-+————+———————+

2 rows in set (0.00 sec)

ដើម្បីលប់នូវ table ណាមួយចេញពី database អ្នកអាចប្រើ command :mysql> drop table tableNameសំរាប់ command ដែលប្រើដើម្បីលប់ row ពី table ទាមទារអោយអ្នកផ្ដល់នូវឈោះនៃ table ហើយនិងwhere condition ដែលបញ្ជាក់ពី row(s) ដែលនឹងត្រូវលប់ ។

delete from tableName where Where-condition

សូមប្រុងប្រយ័ត្នប្រសិនបើអ្នកមិនប្រើ where-condition នោះទេ គ្រប់ rows ទាំងអស់ដែលមាននៅក្នុងtable នឹងត្រូវលប់ចោលទាំងអស់។ នៅក្នុងឧទាហរណ៍ខាងក្រោមយើងនឹងប្រើតំលៃរបស់ attribute name និង username ដើម្បីលប់ row ចេញពី table tblpeople ។

delete from tblpeople where name=’ monen ’ and username = ’ muth ’ ;.

UPDATE command ត្រូវបានប្រើដើម្បីកែប្រែពត៌មានដែលមាននៅក្នុង table អ្នកអាច select យក

ពត៌មានណាមួយមកកែប្រែពត៌មានដោយមិនមានការបាត់បង់នូវ record ឬ row ដើមទាំងស្រុងឡើយ ។

The syntax is:

UPDATE table-name SET field1=‟val1‟, field2=‟val2‟, field3=‟val3‟…………

WHERE condition;

ex.

update tblpeople set password=’maco’ where username=’muth’ ;

3. PHP/MySQL Functions .

3.1 Connecting to MySQL .

មុនពេលដែលចាប់ផ្ដើមធ្វើការជាមួយនឹង database របស់អ្នក អ្នកត្រូវតែ connect ទៅកាន់ Server ជាមុនសិន ។ PHP ផ្ដល់នូវ mysql_connect () function ដើម្បីអនុវត្ដន៍នូវភារកិច្ចនេះ ។

បំណែកកូដខាងក្រោមនឹងបង្ហាញពីការប្រើប្រាស់ mysql_connect() ភ្ជាប់ទៅកាន ់ MySQL database Server ។

$link = mysql_connect( “localhost”, “root”, “123” );

if ( ! $link )

{

die( “Couldn’t connect to MySQL” );

}

3.2 Selecting a Database .

បន្ទាប់ពីបានបង្កើត connection ដើម្បីភ្ជាប់ទៅកាន់ MySQL រួចរាល់ហើយ អ្នកត្រូវតែជ្រើរើសDatabase ណាមួយដើម្បីធ្វើការជាមួយវា ដោយអ្នកអាចប្រើប្រាស់នូវ mysql_select_db() function ។

បំណែកកូដខាងក្រោមយើងនឹង select យក database មួយដែលមានឈោះថា BbuDb

$database = “BbuDb“; .

mysql_select_db( $database ) or die ( “Couldn’t open $database ); .

3.3 Adding Data to a Table .

ឥឡូវនេះយើងមានលទ្ធភាពគ្រប់គ្រាន់ដើម្បី access ទៅកាន់ database ហើយយើងអាចបញ្ជូលនូវពត៌មានទៅកាន់ table នៃ database ។ សំរាប់ជាឧទហរណ៍យើងនឹងប្រើប្រាស់ table ដែលបានបង្កើតនៅក្នុង database BbuDb ដែលមានឈោះថា tblpeople ។

Adding a Row to a Table >

01: <html>

02: <head>

03: <title>Listing 13.2 Adding a Row to a Database</title>

04: </head>

05: <body>

06: <div>

07: <?php

08: $user = “root”;

09: $pass = ” “;

10: $db = “BbuDb”;

11: $link = @mysql_connect( “localhost”, $user, $pass );

12: if ( ! $link )

13: {

14: die( “Couldn’t connect to MySQL: “.mysql_error() );

15: }

16: print “<h2>Successfully connected to server</h2>\n\n”;

17: @mysql_select_db( $db )

18: or die ( “Couldn’t open $db: “.mysql_error() );

19: print “Successfully selected database \”$db\”<br />\n”;

20:

21: $query = “insert into tblpeople(username , password , name , email )

22: values( ‘ ratana07 ‘, ‘ 1234 ‘, ‘ som ratana ‘, ‘ ratana@example.com ‘ )”;

23: mysql_query( $query, $link )

24: or die ( “INSERT error: “.mysql_error() );

25:

26: mysql_close( $link );

27: ?>

28: </div>

29: </body>

30: </html>

សំរាប់ឧទាហរណ៍នេះយើងមិនបានបញ្ចូលតំលៃទៅអោយ id column នោះទេ ព្រោះ field នេះជាប្រភេទ auto_increments ។ វាជាការពិត រាល់ពេលដែលយើង reload script នៃឧទាហរណ៍ខាងលើទិន្នន័យដដែលនឹងត្រូវបញ្ចូលទៅកាន់ row ថីមួយទៀតនៃ table ។

3.4 Adding User Input to a Database .

Registration.html

<html>

<head>

<title>Adding user input to a database</title>

</head>

<body>

<CENTER>

<h2> Adding user input to a databases </h2>

<hr width=550>

<form action=”insert.php” method=”Post”>

 

<table>

<tr>

<td>Name :</td>

<td><input type=”TextBox” size=”18″ name=”txtname”/></td>

</tr>

 

<tr>

<td>UserName :</td>

<td><input type=”TextBox” size=”18″ name=”txtusr”/></td>

</tr>

<tr>

<td>Password :</td>

<td><input type=”Password” name=”txtpwd”/></td>

</tr>