Thaimisc.com : PHP กับฐานข้อมูล MySQL (12)
ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us | Colocation | Web Hosting | เปิดร้านค้าฟรี


Category : Php Developer Print Article Only Print Aticle With Comment
PHP กับฐานข้อมูล MySQL (12)
เขียนโดย เดอะกาฝากไดอารี่ (ball@bbznet.com) , 21-05-2004

อัพเดตแบบต่อเนื่องกันหน่อยครับ เพราะว่าหมู่นี้น้ำเยอะไปนิด กลัวว่าอ่านแล้วจะไม่ได้เนื้อหาสาระเท่าที่ควร อิอิ...

ฟังก์ชันที่ต้องจำขึ้นใจ (ต่อ)
มาต่อกับฟังก์ชันที่ใช้ในการพัฒนาเว็บแอปพลิเคชั่นด้วย PHP ควบคู่กับ MySQL กันต่อครับ...
ในตอนที่แล้ว ผมได้พูดถึง mysql_connect() ที่เป็นฟังก์ชันแรกที่เราจะต้องใช้ เพื่อที่จะทำการเชื่อมต่อกับฐานข้อมูลก่อน

mysql_select_db()
ฟังก์ชันนี้มีไว้เพื่อใช้สำหรับการเลือกฐานข้อมูลที่จะใช้งานครับ (สมชื่อกับคำว่า select db ที่ย่อมาจาก select database หรือแปลเป็นไทยได้ว่า เลือกฐานข้อมูล นั่นเอง)... เราจำเป็นต้องเลือกฐานข้อมูลมาใช้งาน ด้วยเพราะว่าใน MySQL server เพียงตัวเดียว ไม่ได้หมายความว่าจะมีฐานข้อมูลได้เพียงหนึ่งเดียวนะครับ แต่สามารถมีได้มากมาย ทีนี้เวลาเราจะใช้งาน เราก็จะต้องเลือกด้วยว่าเราจะเลือกใช้งานฐานข้อมูลใด

ไม่รู้ว่ายังจำกันได้อยู่หรือเปล่า ว่าเราได้สร้างฐานข้อมูลชื่อ company เอาไว้ เพื่อเก็บข้อมูลพนักงานในบริษัท และได้ทำการแทรกระเบียนแรกเข้าไปก่อนแล้ว (เพื่อเรียนรู้ SQL statement สำหรับการแทรกระเบียน และสืบค้นข้อมูล) ดังนั้นในตัวอย่างนี้ผมก็จะทำการเลือกใช้งานฐานข้อมูลชื่อ company นี้ครับ

โค้ดที่เราเขียนเอาไว้ในตอนที่แล้ว ก็จะกลายเป็นแบบนี้

<?php

mysql_connect("localhost", "root", "") or die ("ไม่สามารถเชื่อมต่อกับฐานข้อมูลได้"); //ทำการเชื่อมต่อกับฐานข้อมูล
mysql_select_db("company") or die ("ไม่สามารถเลือกใช้ฐานข้อมูลนี้ได้"); //เลือกใช้ฐานข้อมูลชื่อ company

?>

แต่จริงๆ แล้วเวลาที่เราต้องการเขียนโค้ดเต็มๆ นั้น เราจะเขียนแบบโค้ดด้านล่างนี่ครับ

<?php

$myConn = mysql_connect("localhost", "root", "") or die ("ไม่สามารถเชื่อมต่อกับฐานข้อมูลได้"); //ทำการเชื่อมต่อกับฐานข้อมูล
mysql_select_db("company", $myConn) or die ("ไม่สามารถเลือกใช้ฐานข้อมูลนี้ได้"); //เลือกใช้ฐานข้อมูลชื่อ company

?>

ถามว่าแตกต่างกันตรงไหน?!? คำตอบคือ โค้ดแบบแรกนั้นจะไม่มีการรับค่า MySQL link identifier ที่ return มาจากฟังก์ชัน mysql_connect() มาใส่ให้กับฟังก์ชัน mysql_select_db() ต่อ... ทีนี้ถามต่อครับว่า จำเป็นไหมที่เราจะต้องเขียนโค้ดแบบเต็มๆ?!?

หากเราไม่ระบุค่า MySQL link identifier ลงไป ฟังก์ชันจะทำการเหมาเอาเองว่า จะใช้ค่า MySQL link identifier ที่เปิดอยู่ทันที... แต่หากเราจำเป็นต้องเปิดใช้งานฐานข้อมูลจากหลายๆ แหล่งพร้อมกันแล้ว เราก็จำเป็นที่จะต้องแยกแยะตัว MySQL link identifier ด้วยครับ... แต่โดยรวมแล้ว หากเราพัฒนาเว็บแอปพลิเคชั่นบนฐานข้อมูลเพียงตัวเดียว เราไม่จำเป็นที่จะต้องระบุแต่อย่างใด

mysql_close()
มีเกิดย่อยมีดับ เปิดการเชื่อมต่อมาใช้งานแล้ว ก็อย่าลืมปิดมันลงด้วยครับ... จริงอยู่ว่า MySQL นั้นมีประสิทธิภาพที่ไม่เลว สามารถรองรับการใช้งานได้มากมาย แต่ทว่ามันก็มีขีดจำกัดครับ หากมีการเชื่อมต่อเกิดขึ้นจนเกินจำนวนการเชื่อมต่อสูงสุดที่ MySQL จะรับได้ การเชื่อมต่ออันต่อมา ก็จะไม่สามารถเชื่อมต่อได้ จะเกิดเป็น error message มาว่า Too many connection ประมาณเนี้ย

ดังนั้นเมื่อเขียนโค้ดจบเรียบร้อย ก็ขอให้ทำการปิดการเชื่อมต่อด้วยครับ... ดังนั้นหากเราจะปิดการเชื่อมต่อของโค้ดข้างต้น เราก็แก้โค้ดเป็นประมาณนี้

<?php

mysql_connect("localhost", "root", "") or die ("ไม่สามารถเชื่อมต่อกับฐานข้อมูลได้"); //ทำการเชื่อมต่อกับฐานข้อมูล
mysql_select_db("company") or die ("ไม่สามารถเลือกใช้ฐานข้อมูลนี้ได้"); //เลือกใช้ฐานข้อมูลชื่อ company
mysql_close(); //ปิดการเชื่อมต่อกับฐานข้อมูล

?>

แน่นอน จริงๆ แล้วเราสามารถกำหนดได้ว่าจะใช้ฟังก์ชัน mysql_close() นี้ปิดการเชื่อมต่อตัวไหน (ในกรณีที่เราเปิดการเชื่อมต่อเอาไว้มากกว่า 1) ดังนี้

<?php

$myConn = mysql_connect("localhost", "root", "") or die ("ไม่สามารถเชื่อมต่อกับฐานข้อมูลได้"); //ทำการเชื่อมต่อกับฐานข้อมูล
mysql_select_db("company", $myConn) or die ("ไม่สามารถเลือกใช้ฐานข้อมูลนี้ได้"); //เลือกใช้ฐานข้อมูลชื่อ company
mysql_close($myConn); //ปิดการเชื่อมต่อกับฐานข้อมูล

?>

ขอให้จำเอาไว้ให้ขึ้นใจนะครับ... เปิดแล้ว ควรปิดให้เรียบร้อยด้วย เพื่อประหยัดทรัพยากรของ MySQL server เอง

(ติดตามตอนต่อไป)

<- Back | Next ->

ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us
Copyright 1999-2006 Thailand Miscellaneous. Allrights reserved. webmaster@thaimisc.com