មេរៀនទី៨: 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 >

 
  Listing 13.2 Adding a Row to a Database
 
 
 

   $user = “root”;
  $pass = ” “;
  $db = “BbuDb”;
  $link = @mysql_connect( “localhost”, $user, $pass );
  if ( ! $link )
  {
  die( “Couldn’t connect to MySQL: “.mysql_error() );
  }
  print “

Successfully connected to server

\n\n”;
  @mysql_select_db( $db )
 or die ( “Couldn’t open $db: “.mysql_error() );
  print “Successfully selected database \”$db\”
\n”;

  $query = “insert into tblpeople(username , password , name , email )
  values( ‘ ratana07 ‘, ‘ 1234 ‘, ‘ som ratana ‘, ‘ ratana@example.com ‘ )”;
  mysql_query( $query, $link )
  or die ( “INSERT error: “.mysql_error() );

  mysql_close( $link );
  ?>
 
 
 
សំរាប់ឧទាហរណ៍នេះយើងមិនបានបញ្ចូលតំលៃទៅអោយ id column នោះទេ ព្រោះ field នេះជាប្រភេទ auto_increments ។ វាជាការពិត រាល់ពេលដែលយើង reload script នៃឧទាហរណ៍ខាងលើទិន្នន័យដដែលនឹងត្រូវបញ្ចូលទៅកាន់ row ថីមួយទៀតនៃ table ។
3.4 Adding User Input to a Database .
Registration.html


Adding user input to a database



Adding user input to a databases




insert.php

” method=”Post”>


Name :



UserName :



Password :