ไม่มีชื่อเรื่องภาพนิ่ง

Download Report

Transcript ไม่มีชื่อเรื่องภาพนิ่ง

PHP กับการเชื่อมต่ อฐานข้ อมูล MySQL
( MySQL DATABASE FUNCTION )
โดย อ. นัฐพงศ์ ส่ งเนียม
http://www.siam2dev.com
1
MySQL DATABASE FUNCTION
MySQL เป็ นระบบฐานข้ อมูลที่ใช้ งานร่ วมกับ PHP หาใช้ ได้
ง่ ายระบบมีประสิทธิ์ภาพสูงและเป็ นแบบ RDBMS (ralational
database management system)
2
ระบบฐานข้ อมูลที่ PHP สามารถเชื่อมต่ อได้
Oracle
MySQL
Sybase
Solid
mSQL
ODBC
PostgreSQL Adabas D
FilePro
Velocis
dBase
Informix
Unix dbm
3
PHP ทางานร่ วมกับ MySQL ได้ อย่ างไร
การที่ภาษา PHP นัน้ จะสามารถติดต่ อกับฐานข้ อมูลใดได้
ต้ องมีการกาหนด option ( --with-mysql ) ในการ compile ของ
PHP แต่ ก่อนที่จะ compile ภาษา PHP ให้ ตดิ ต่ อกับระบบ
ฐานข้ อมูลใดควรที่จะติดตัง้ ระบบฐานข้ อมูลนัน้ ให้ สาเร็จก่ อน
4
คาสั่ง SQL เบือ้ งต้ น
คาสั่ง SQL (structure query language) เป็ นคาสั่งที่ใช้ ในการ
ติดต่ อกับระบบฐานข้ อมูล เพื่อ
อ่านข้ อมูล
แก้ ไขข้ อมูล
เพิ่มข้ อมูล
การลบข้ อมูล
5
คำสั่ ง SQL (ต่ อ)
คาสั่งที่ใช้ อ่านข้ อมูล
SELECT [ALL | DISTINCT] select_list
[INTO new_table_]
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC | DESC] ]
6
คำสั่ ง SQL ? (ต่ อ)
คาสั่งที่ใช้ แก้ ไขข้ อมูล
UPDATE
{ table_name WITH ( <table_hint_limited> […n])
| view_name | rowset_function_limited }
SET
Column_name = { expression | DEFAULT | NULL }
{ [FROM {<table_source>} [,…n]
[ WHERE <search_condition>] }
7
คำสั่ ง SQL ? (ต่ อ)
คาสั่งที่ใช้ เพิ่มข้ อมูล
INSERT [INTO]
{ table_name WITH ( <table_hint_limited> […n])
| view_name | rowset_function_limited }
{ [(column_list)]
{ VALUES { ( DEFAULT | NULL | expression } [,…n] )
| derived_table | execute_statement } }
8
คำสั่ ง SQL ? (ต่ อ)
คาสั่งที่ใช้ ลบข้ อมูล
DELETE
[FROM]
{ table_name WITH ( <table_hint_limited> […n] )
| view_name |rowset_function_limited }
[FROM {<table_source>} […n] ]
[WHERE <search_condition> ]
9
ฟั งก์ ชันที่ใช้ ตดิ ต่ อ MySQL
การนา PHP ไปใช้ เพื่อติดต่ อกับระบบฐานข้ อมูลนัน้ ทาได้ ง่าย
เพราะ PHP ได้ เตรียมฟั งก์ ชันที่ใช้ สาหรับการติดต่ อไว้ แล้ ว โดย
ฟั งก์ ชันที่เตรียมไว้ จะแบ่ งตามระบบฐานข้ อมูลที่แตกต่างกัน
 mysql_connect
 mysql_affected_rows
 mysql_create_db
 mysql_data_seek
10
mysql_connect
เป็ นฟั งก์ ชันที่ใช้ ในการติดต่ อกับระบบฐานข้ อมูลของ MySQL
รู ปแบบของคำสั่ง
int mysql_connect(string hostname, string username, string password) ;
hostname คือ เครื่ องที่ตดิ ตัง้ ระบบฐานข้ อมูลของ MySQL
username คือ ซื่อของผู้ใช้ ท่ มี ีสทิ ธิ์เข้ าใช้ ระบบฐานข้ อมูลของ MySQL
password คือ รหัสผ่ านของ username
11
mysql_close
เป็ นฟั งก์ ชันที่ใช้ ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
รูปแบบของคำสั่ง
int mysql_close(int link_identifier);
link_identifier
12
ตัวอย่ ำง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”root”,””);
if($link) {
echo “ติดต่ อระบบฐานข้ อมูลของ MySQL ได้ สาเร็จ<br>”;
} else {
echo “ไม่ สามารถติดต่ อระบบฐานข้ อมูลของ MySQL ได้ <br>”;
}
if ($link) {
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
echo “ยกเลิกการติดต่ อกับระบบฐานข้ อมูลแล้ ว”;
}
13
?>
mysql_create_db
เป็ นฟั งก์ ชันที่ใช้ สร้ างฐานข้ อมูล(database)
รูปแบบของคำสั่ง
int mysql_create_db( string databasename, int link_identifier) ;
ต.ย. คำสั่ง
$MyCon = mysql_connect(“localhost”,”root”,””);
mysql_create_db( “MyDB”, $MyCon) ;
14
ตัวอย่ ำง
<?
//ติดต่ อระบบฐำนข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”root”,””);
//สร้ ำงฐำนข้ อมูลซื่อ test_db
$chk = mysql_create_db(“test_db”,$link);
//ตรวจสอบว่ ำสร้ ำงฐำนข้ อมูล test_db ได้ สำเร็จหรือไม่
if($chk) {
echo “ฐำนข้ อมูล test_db สร้ ำงได้ สำเร็จ”;
} else {
echo “ไม่ สำมำรถสร้ ำงฐำนข้ อมูล test_db ได้ ”;
}
//ยกเลิกกำรติดต่ อกับระบบฐำนข้ อมูล
mysql_close($link);
?>
15
mysql_affected_rows
ใช้ ตรวจสอบว่ าคาสั่ง (INSERT, DELETE, UPDATE) ที่ส่ ังไปทา
กับข้ อมูลที่ระบบฐานข้ อมูล มีจานวนรายการ(record) ของข้ อมูล
กี่รายการที่มีผลกับคาสั่งนัน้
รูปแบบของคำสั่ง
int mysql_affected_rows(int link_identifier) ;
- link_identifier
16
ตัวอย่ าง
<?
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
mysql_select_db(“test_db”,$link);
$query = “update phpuser set old = 18 where id < 3”;
$result = mysql_query($query,$link);
$affect_rows = mysql_affected_rows($link);
echo”จานวนรายการที่ถูกทาด้ วยคาสั่ง UPDATE :
$affect_rows”;
mysql_close($link);
?>
17
mysql_data_seek
เป็ นฟั งก์ ชันที่ใช้ เลื่อนตัวชี(้ pointer) ไปยังแถวของรายการข้ อมูล
ที่ต้องการ
รูปแบบของคำสั่ง
int mysql_data_seek(int result_identifier, int row_number);
- result_identifier คือเลขที่อ้างถึงผลลัพธ์ ท่ ไี ด้ จากคาสั่ง SELECT
- row_number
18
ตัวอย่ ำง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”root”,””);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“CarDB”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query ="select id, name,surname from member";
// ส่ งคำสั่ งไปทำงำนทีฐ่ ำนข้ อมูล
$result = mysql_query($query,$link);
//เลื่อน pointer ไปยังแถวที่ 3
$chk = mysql_data_seek($result,2);
19
ตัวอย่ ำง(ต่ อ)
if ($chk) {
//อ่ านข้ อมูลของแถวที่ 3
$data = mysql_fetch_row($result);
echo “รหัส $data[0] ของ $data[1] $data[2]”;
} else {
echo “ไม่ สามารถอ่ านข้ อมูลแถวที่ 3 ได้ ”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
20
mysql_db_query
ใช้ ส่งคาสั่งไปยัง MySQL เหมือนกับฟั งก์ ชัน mysql_query() แต่
สามารถกาหนดฐานข้ อมูลที่ต้องการจะติดต่ อได้
รูปแบบคำสั่ง
int mysql_db_query(string databasename, string query,
int link_identifier);
- databasename ชื่อฐานข้ อมูล
- query คาสั่ง SQL
- link_identifier ตัวแปรที่ใช้ ตดิ ต่ อระบบฐานข้ อมูลของ MySQL
21
ตัวอย่ ำง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select id,name,surname from phpuser”;
//ส่ งคาสั่งไปทางานที่ฐานข้ อมูล test_db ของ MySQL
//ไม่ ต้องใช้ ฟังก์ ชัน mysql_select_db()
$result = mysql_db_query(“test_db”,$query,$link);
22
ตัวอย่ ำง(ต่ อ)
//เลื่อน pointer ไปยังแถวที่ 3
$chk = mysql_data_seek($result,2);
if($chk) {
//อ่ านข้ อมูลของแถวที่ 3
$data = mysql_fetch_row($result);
echo “รหัส $data[0] ของ $data[1] $data[2]”;
} else {
echo “ไม่ สามารถอ่ านข้ อมูลแถวที่ 3 ได้ ”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
23
mysql_drop_db
เป็ นฟั งก์ ชันที่ใช้ ลบ(drop) ฐานข้ อมูลออกจากระบบฐานข้ อมูล
ของ MySQL
รู ปแบบของคำสัง่
int mysql_drop_db(string databasename, int link_identifier);
- databasename ชื่อฐานข้ อมูล
- link_identifier ตัวแปรที่ใช้ ตดิ ต่ อระบบฐานข้ อมูลของ MySQL
24
mysql_errno
เป็ นฟั งก์ ชันที่ใช้ ในการรับค่ าเลขรหัสของความผิดพลาด(error
number)ที่เกิดขึน้ ครัง้ สุดท้ ายเมื่อมีการติดต่ อกับ MySQL
รูปแบบของคำสั่ง
int mysql_errno(int link_identifier);
25
mysql_error
เป็ นฟั งก์ ชันที่ใช้ ในการรับข้ อความรายละเอียดของความ
ผิดพลาด(error description)ที่เกิดขึน้ ครัง้ สุดท้ ายเมื่อมีการติดต่ อ
กับ MySQL
รูปแบบของคำสั่ง
string mysql_error(int link_identifier);
26
mysql_fetch_array
ใช้ อ่านค่ าของข้ อมูลจากการใช้ คาสั่ง SELECT ของฟั งก์ ชัน
mysql_query หรือ mysql_db_query ให้ อยู่ในรูปของตัวแปร
อาร์ เรย์
mysql_fetch_array สามารถกาหนดดัชนีได้ ทงั ้ แบบ ซื่อคอลัมน์
และเลขลาดับของคอลัมน์
รูปแบบของคำสั่ง
array mysql_fetch_array (int result);
27
ตัวอย่ ำง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”root”,””);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = select id,name,surname from phpuser”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ MySQL
$result = mysql_query($query,$link);
//อ่ านข้ อมูลที่เก็บอยู่ในอาร์ เรย์ $result ทีละแถว
echo “อ่ านค่ าจากอาร์ เรย์ โดยกาหนดดัชนีแบบซื่อของคอลัมน์ <br>”;
while ( $data = mysql_fetch_array($result){
//ฟั งชันก์ mysql_fetch_row() ไม่ สามารถทาได้
echo $data[“id”].” “.$data[“name”].” “.$data[“surname”].”<br>”;
}
28
//ไปเริ่มอ่ านที่แถวแรกใหม่
mysql_data_seek($result,0);
echo “อ่ านค่ าจากอาร์ เรย์ โดยกาหนดดัชนีแบบเลขลาดับ<br>”;
while ( $data = mysql_fetch_array($result) ){
echo $data[0].” “.$data[1].” “.$data[2].”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
29
mysql_fetch_field
เป็ นฟั งก์ ชันที่ใช้ อ่านรายละเอียดของคอลัมน์ ซ่ งึ จะเก็บอยู่ในรูป
ของออปเจค(object)
รูปแบบของคำสั่ง
array mysql_fetch_field (int result,[int field]);
30
mysql_fetch_lengths
ใช้ อ่านค่ าขนาดหรือความยาวของข้ อมูลที่เก็บอยู่ของแต่ ละ
คอลัมน์ นัน้ โดยค่ าที่อ่านจะเก็บไว้ ในรูปแบบของตัวแปรอาร์ เรย์
การใช้ ฟังก์ ชันนีต้ ้ องใช้ หลังจากเรียกใช้ ฟังก์ ชัน
mysql_fetch_row , mysql_fetch_array , mysql_fetch_object แล้ ว
รูปแบบคาสั่ง
array mysql_fetch_lengths($result);
31
ตัวอย่ าง
<?
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
mysql_select_db(“test_db”,$link);
$query = “select * form phpuser”;
$result = mysql_query($query,$link);
$getdata = mysql_fetch_row($result);
$arrmax = mysql_fetch_lengths($result);
for ($index = 0;$index < count($arrmax);$index++){
echo”คอลัมน์ $index มีขนาดสูงสุด
”.$arrmax[$index].”<br>”;}
mysql_close($link);
?>
32
mysql_fetch_object
ทางานเหมือนกับฟั งก์ ชัน mysql_fetch_array() และ
mysql_fetch_row() แต่ แตกต่ างกันที่ค่าคืนกลับมานัน้ เป็ นออบ
เจค (object) แทนที่จะเป็ นอาร์ เรย์ เหมือนกับฟั งก์ ชันทัง้ สอง
รู ปแบบของคำสัง่
object mysql_fetch_object(int result);
33
ตัวอย่ ำง
<?
//ติดต่ อระบบฐำนข้ อมูลของ Mysql
$link = mysql_connect("localhost","seree","");
//เลือกฐำนข้ อมูลทีต่ ้ องกำร
mysql_select_db("test_db",$link);
//กำหนดคำสั่ งทีต่ ้ องส่ งไปทำงำนทีฐ่ ำนข้ อมูล
$query = "select * from phpuser";
//ส่ งคำสั่ งไปทำงำนที่ระบบฐำนข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//อ่ ำนข้ อมูลมำเก็บไว้ ที่ object
while ($object =mysql_fetch_object($result)){
echo $object ->id." ";
echo $object ->name." ";
echo $object ->surname."<BR> ";
}
//ยกเลิกกำรติดต่ อกับระบบฐำนข้ อมูล
mysql_close($link);
?>
34
mysql_fetch_row
ทางานเหมือนกับฟั งก์ ชัน mysql_fetch_array() แต่ ดัชนีท่ ใี ช้
กาหนดข้ อมูลในอาร์ เรย์ นัน้ ต้ องเป็ นเลขลาดับของคอลัมน์
เท่ านัน้ ไม่ สามารถใช้ ดชั นีเป็ นชื่อของคอลัมน์ ได้ เหมือนกับ
ฟั งก์ ชัน mysql_fetch_array()
รู ปแบบของคำสัง่
array mysql_fetch_row(int result);
35
mysql_filed_name
เป็ นฟั งก์ ชันที่ใช้ อ่านชื่อคอลัมน์
รู ปแบบของคำสั่ง
String mysql_field_name(int result , int field);
36
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * form phpuser”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
//แสดงชื่อของคอลัมน์
37
ตัวอย่ าง(ต่ อ)
for(){
echo “คอลัมน์ $index ชื่อ
”.mysql_field_name($result,$index),”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
38
mysql_field_seek
เป็ นฟั งก์ ชันที่ใช้ เลื่อนตัวชี ้ (pointer) ของคอลัมน์ ให้ ไปยังคอลัมน์
ที่ต้องการ
รูปแบบของคาสัง่
Int mysql_field_seek(int result,int field);
39
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * form phpuser”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
40
ตัวอย่ าง(ต่ อ)
//คอลัมน์ แรก
$data = mysql_fetch_field($result);
echo “คอลัมน์ แรก “.$data->table.” “.$data->name””.$data->type;
echo”<br>”;
//เลื่อน pointer คอลัมน์ ท่ ี ข้ ามคอลัมน์ ท่ ี 2
mysql_field_seek($result,3);
//คอลัมน์ ท่ สี ่ ี
$data = mysql_fetch_field($result);
echo “คอลัมน์ ท่ สี ่ ี “.$data->table.” ”.$data->name.””.$data->type;
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
41
mysql_field_table
เป็ นฟั งก์ ชันที่ใช้ อ่านชื่อตาราง (table) ของคอลัมน์ นัน้
รูปแบบของคาสั่ง
string mysql_field_table(int result,int field);
42
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select phpuser.name , phpalias.alias ,
phpuser.surname
from phpuser , phpalias
where phpuser.id = phpalias.id”;
43
ตัวอย่ าง(ต่ อ)
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
//แสดงชื่อตาราง (table) ของคอลัมน์
for ($index = 0 ; $index < $sumfield ; $index++){
echo “คอลัมน์ “.mysql_field_name($result,$index).”มาจากตาราง “;
echo mysql_field_table($result,$index).”<br>”;
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
44
mysql_field_type
เป็ นฟั งก์ ชันที่ใช้ อ่านข้ อมูลประเภทของคอลัมน์
รูปแบบของคาสั่ง
string mysql_field_type(int result,int field);
45
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select phpuser.name , phpalias.alias , phpuser.surname
from phpuser , phpalias
where phpuser.id = phpalias.id”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
46
ตัวอย่ าง(ต่ อ)
//แสดงประเภท ของคอลัมน์
for ($index = 0 ; $index < $sumfield ; $index++){
echo “คอลัมน์ “.mysql_field_name($result,$index).
”มาจากตาราง “;
echo mysql_field_table($result,$index);
echo “ประเภทของคอลัมน์ ” .mysql_field_type($result,$index).”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
47
mysql_field_flags
เป็ นฟั งก์ ชันที่ใช้ อ่านรายละเอียดเฉพาะที่กาหนดให้ กับคอลัมน์ นัน้ เช่ น
not_null , primary_key , unique_key , multiple_key , blob , unsigned ,
binary , enum , auto_increment , timesstamp
รู ปแบบของคำสั่ง
string mysql_field_flags (int result,int field);
48
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
49
ตัวอย่ าง(ต่ อ)
//แสดงรายละเอียดเฉพาะของแต่ ละคอลัมน์ ท่ ีกาหนดให้
for ($index = 0 ; $index < $sumfield ; $index++){
echo “คอลัมน์ :“.mysql_field_name($result,$index);”
echo “รายละเอียดเฉพาะที่กาหนดให้ :”.eregi_replace(“ “,”,”,
mysql_field_flags($result,$index).”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
50
mysql_field_len
เป็ นฟั งก์ ชันที่ใช้ ขนาดหรือความยาวที่ถูกกาหนดให้กับคอลัมน์
นัน้ ในขัน้ ตอนของการสร้ างตาราง (table)
รูปแบบของคำสั่ง
string mysql_field_len(int result,int field);
51
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ Mysql
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select phpuser.name , phpalias.alias ,
phpuser.surname from phpuser , phpalias
where phpuser.id = phpalias.id”;
52
ตัวอย่ าง(ต่ อ)
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ Mysql
$result = mysql_query($query,$link);
//หาจานวนของคอลัมน์
$numfield = mysql_num_fields($result);
//แสดงขนาดที่กาหนดให้ กับคอลัมน์
for ($index = 0 ; $index < $sumfield ; $index++){
echo “คอลัมน์ “.mysql_field_name($result,$index).”มาจากตาราง “;
53
ตัวอย่ าง(ต่ อ)
echo mysql_field_table($result,$index);
echo “ขนาดที่กาหนดไว้
“.mysql_field_len($result,$index).”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
54
mysql_free_result
เป็ นฟั งก์ ชันที่ใช้ ในการคืนหน่ วยความจา(memory)ใช้ ในการเก็บ
ข้ อมูล ชั่วคราวเมื่อเรียกใช้ ฟังก์ ชัน (mysql_db_query)หรือ
(mysql_queryซึ่งจะทาให้ หน่ วยความจาของระบบเพิ่มขึน้
รูปแบบของคำสั่ง
int mysql_free_result(int result);
55
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select id, name, surname from phpuser”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ MySQL
56
ตัวอย่ าง(ต่ อ)
//ข้ อมูลที่ถูกส่ งกลับจะถูกเก็บไว้ ท่ ี $result
// $result มีการใช้ หน่ วยความจาเพื่อเก็บรักษาข้ อมูลที่ฐานข้ อมูล
ส่ งกลับมาให้
$result=mysql_query($query,$link);
//คืนหน่ วยความจาที่ถือครองโดย $result ให้ กับระบบ
$chk = mysql_free_result($result);
if($chk) {
echo “คืนหน่ วยจาที่ใช้ โดย \$result แล้ ว ”;
}else {
57
ตัวอย่ าง(ต่ อ)
echo “ไม่ สามารถคืนหน่ วยจาของ \$result ได้ ”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
58
mysql_insert_id
เป็ นฟั งก์ ชันที่ใช้ อ่านค่ า ID หลังจากที่มีคาสั่ง INSERT ข้ อมูลลง
ในตารางที่มีคอลัมน์ แบบ auto_incement
รูปแบบของคำสั่ง
int mysql_insert_id();
59
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”,$link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “insert into phpalias(id ,alias) values(‘00004’,’test4’)”;
//ส่ งคาสั่งไปทางานที่ระบบฐานข้ อมูลของ MySQL
$result=mysql_query($query,$link);
60
ตัวอย่ าง(ต่ อ)
//รับค่ า ID จาก mysql เมื่อมีการ INSERT ข้ อมูลคอลัมน์ แบบ
// auto_incement
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
61
mysql_list_feild
เป็ นฟั งก์ ชันที่ใช้ อ่านรายละเอียดของทุกคอลัมน์ ภายในตาราง
(table) ซึ่งสามารถใช้ ฟังก์ ชัน
mysql_field_name(),mysql_field_type(),
mysql_field_len(),mysql_field_flags(),อ่ านรายละเอียดขอคอลัมน์
นัน้ ตามความต้ องการได้
รูปแบบของคาสัง่
int mysql_list_field(string databasename, string
tablename,int link_udentifier);
62
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//ติดต่ อกับฐานข้ อมูล test_db
//อ่ านข้ อมูลทุกคอลัมน์ จากตาราง phpuser
$result = mysql_list_fields(“test_db”,”phpalias”,$link);
//จานวนคอลัมน์
$numfield = mysql_num_field($result);
//แสดงรายละเอียดของคอลัมน์
for($index=0; $index <$numfield; $index++) {
63
ตัวอย่ าง(ต่ อ)
echo “คอลัมน์ ” .mysql_field_name($result,$index);
echo “ประเภท” .mysql_field_type($result,$index);
echo “ขนาด” .mysql_field_len($result,$index);
echo “ลักษณะเฉพาะ” .mysql_field_flags($result,$index).”<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
64
mysql_list_dbs
เป็ นฟั งก์ ชันที่ใช้ แสดงรายการของฐานข้ อมูลที่มีทงั ้ หมดบนระบบ
ฐานข้ อมูลของ MySQL
รูปแบบของคาสัง่
int mysql_list_dbs(int link_identifier);
65
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//อ่ านรายชื่อของฐานข้ อมูลทัง้ หมดบน MySQL
$result = mysql_list_dbs($link);
echo “รายการของข้ อมูลที่อยู่ MySQL<br>”;
while ($name = mysql_fetch_row($result)) {
//แสดงชื่อของฐานข้ อมูล
echo “$name[0]<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
66
mysql_list_table
เป็ นฟั งก์ ชันที่ใช้ แสดงรายการตาราง(table) ที่มีทงั ้ หมดบนระบบ
ฐานข้ อมูลของ MySQL
รูปแบบของคาสัง่
int mysql_list_tables(string database, int link_identifier);
67
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//อ่ านรายชื่อของฐานข้ อมูลทัง้ หมดบน MySQL
$result = mysql_list_tables($link);
echo “รายการตารางที่อยู่ MySQL<br>”;
while ($name = mysql_fetch_row($result)) {
//แสดงชื่อของตาราง
echo “$table[0]<br>”;
}
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
68
mysql_num_field
เป็ นฟั งก์ ชันที่ใช้ นับจานวนคอลัมน์ ของข้ อมูลที่ถกู ส่ งมาเมื่อใช้
คาสั่ง SELECT ในการอ่ านค่ าของข้ อมูลจากฐานข้ อมูล
รูปแบบของคาสัง่
int mysql_num_fields( int result);
69
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”root”,””);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”, $link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * from CarDB”;
//ส่ งคาสั่งไปทาที่ระบบฐานข้ อมูลของ MySQL
$result = mysql_query($query,$link);
echo “จานวนคอลัมน์ :”.mysql_num_field($result);
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
70
mysql_num_rows
เป็ นฟั งก์ ชันที่ใช้ นับจานวนแถวของข้ อมูลที่ถูกส่ งมาเมื่อใช้ คาสั่ง
SELECT ในการอ่ านค่ าของข้ อมูลจากฐานข้ อมูล
รูปแบบของคาสัง่
int mysql_num_rows( int result);
71
ตัวอย่ าง
<?
?>
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”,”seree”,”phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”, $link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * from phpuser”;
//ส่ งคาสั่งไปทาที่ระบบฐานข้ อมูลของ MySQL
$result = mysql_query($query,$link);
echo “จานวนรายการข้ อมูลที่ส่งมา :”.mysql_num_rows($result);
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
72
mysql_pconnect
การทางานของฟั งก์ ชันนีเ้ หมือนกับฟั งก์ ชัน mysql_connect() แต่ มีสอง
อย่ างที่ทาให้ ฟังก์ ชันนีแ้ ตกต่ างไปจากฟั งก์ ชัน mysql_connect()
1. เมื่อมีการติดต่ อกับระบบฐานข้ อมูลด้ วยฟั งก์ ชัน mysql_pconnect() ใน
ครั ง้ ต่ อไปถ้ ามีการกาหนด hostname, username และ password
เหมือนกับครั ง้ แรกที่ตดิ ต่ ออยู่กจ็ ะไม่ มีการสร้ างการติดต่ อ(connection)
ขึน้ มาใหม่ แต่ จะใช้ การติดต่ อเดิมในครั ง้ แรก
2. มีการติดต่ อด้ วยฟั งก์ ชัน mysql_pconnect()เป็ นการสร้ างการติดต่ อ
แบบถาวรหมายความว่ า เมื่อจบโปรแกรมหรื อมีการเรี ยกใช้ function
mysql_close() สถานะการติดต่ อกับฐานข้ อมูลนัน้ ก็ยังดารงอยู่จนกว่ าจะมี
การ Restart MySQL ใหม่ อีกครั ง้
73
mysql_query
เป็ นฟั งก์ ชันที่ใช้ ส่งคาสั่ง(SELECT, INSERT, DELETE)ไปทางาน
ที่ระบบฐานข้ อมูลของ MySQL ซึ่งการทางานจะเหมือนกับ
function mysql_db_query()
รูปแบบของคาสัง่
int mysql_query(string query, Int link_identifier);
74
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”, “root”, “”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”, $link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * from phpuser”;
//ส่ งคาสั่งไปทาที่ระบบฐานข้ อมูลของ MySQL
$result = mysql_query($query,$link);
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
75
mysql_result
เป็ นฟั งก์ ชันที่ใช้ อ่านข้ อมูลของคอลัมน์ โดยต้ องมีการระบุแถว
และชื่อคอลัมน์ ท่ ตี ้ องการอ่ านข้ อมูล
รูปแบบของคาสัง่
mysql_result(int result, int row, string fieldname);
76
ตัวอย่ าง
<?
//ติดต่ อระบบฐานข้ อมูลของ MySQL
$link = mysql_connect(“localhost”, “seree”, “phpseree”);
//เลือกฐานข้ อมูลที่ต้องการ
mysql_select_db(“test_db”, $link);
//กาหนดคาสั่งที่ต้องส่ งไปทางานที่ฐานข้ อมูล
$query = “select * from phpuser”;
77
ตัวอย่ าง(ต่ อ)
//ส่ งคาสั่งไปทาที่ระบบฐานข้ อมูลของ MySQL
$result = mysql_query($query,$link);
//หาจานวนรายการของข้ อมูล
$numrow = mysql_num_row($result);
//แสดงค่ าข้ อมูลของคอลัมน์ แรก
for($indx=0; $index<$numrow; $index++){
echo “คอลัมน์ :”.mysql_field_name($result,0);
echo ” ข้ อมูลที่เก็บ : “.mysql_result($result,$index,”id”).”<br>”;
//ยกเลิกการติดต่ อกับระบบฐานข้ อมูล
mysql_close($link);
?>
78
mysql_select_db
เป็ นฟั งก์ ชันที่ใช้ ในการเลือกหรือเปลี่ยนการเข้ าไปใช้ ข้อมูลใน
ฐานข้ อมูลนัน้
รูปแบบของคาสัง่
int mysql_select_db(string fidatabasename, int link_identifier);
79
<?php
$host = "localhost";
$un = "root";
$pwd = "";
$Myconn = mysql_connect($host,$un,$pwd);
if($Myconn) {
echo "ติดต่ อฐำนข้ อมูลได้ ";
$StrSQL = "Select * From TbMember Where
UserName ='" . $TxtUN .
"' and Password = '" . $TxtPWD . "'";
$result =mysql_db_query("CarDB",$StrSQL,$Myconn);
$totalrow = mysql_num_rows($result);
if($totalrow !=0) {
echo "<br>เข้ ำสู่ ระบบแล้ว<br>";
echo "$TxtUN<br>$TxtPWD ";
} else {
echo "<br>ไม่ สำมำรถ เข้ ำสู่ ระบบได้ ";
}
} else {
echo "ไม่ สำมำรถติดต่ อฐำนข้ อมูลได้ ";
}
?>
80