Line#11:หัดขับPHP+MySQL
posted on 13 Aug 2005 09:05 by aimaเมื่อ 2 วันก่อนผมได้ไปดั้นด้นค้นหาตามเว็บต่างๆ ในเรื่องของ PHP
เน้นหนักมากในการใช้ MySQL ร่วมด้วย เพราะว่าอยากจะเขียนให้เป็น
อุตส่าห์ใช้ MySQL พอได้ (ใช้ phpMyAdmin) ก็เลยอยากทำสคริปต์ที่ติดต่อกับฐานข้อมูลเป็นด้วย 
รูปแบบการติดต่อ MySQL ด้วย PHP เบื้องต้น
<?php $conn = mysql_connect($host,$user,$pass) or die("ไม่สามารถเชื่อมต่อกับ MySQL"); mysql_close($conn); |
ผมเปลี่ยนสีตัวอักษรตามแบบของโปรแกรม Editplus ช่วยได้มากทีเดียวเรื่องเช็คไวยากรณ์ (อย่างน้อยก็พิมพ์คำสั่งไม่ผิด) 
สรุปพื้นฐานภาษา PHPและคำสั่งที่ใช้ติดต่อ MySQL
(ขอทำเป็นแบบ Syntax จะได้จำไปใช้ได้)
- [ $conn =mysql_connect(host,user,pass);] คำสั่ง connect ไปยัง mysql โดยสิ่งที่ต้องใส่คือ ตำแหน่งโฮส (ปกติเป็น localhost นะส่วนใหญ่) , ยูสเซอร์ และ รหัสผ่าน (ถ้าผิดหรือหาไม่เจอมันจะแสดง error ให้เห็น) โดยเก็บการเชื่อมต่อไว้ในตัวแปร $conn (แล้วแต่จะกำหนด)
- [ mysql_close($conn); ] เมื่อมีเปิด ใช้เสร็จก็ต้องปิดไปด้วย โดยล้างตัวแปร $conn (เหมือน asp ที่ต้องล้างตัวแปรหลังจบการเชื่อมต่อ)
- [ mysql_select_db("table-name",connection); ] คำสั่งติดต่อกับฐานข้อมูลที่กำหนด
- [ $db_query = mysql_query("mysql-command",connection); ] และ
[ $db_query = mysql_db_query(database-name,"mysql-command"); ]
ไม่แน่ใจว่าอันไหนเป็นยังไงอะนะ แต่ก็ลองใช้แล้วใช้ได้ทั้ง 2 อัน
เป็นคำสั่งในการส่งคำสั่งคิวรี่ไปยัง mysql ทั้งคู่เลย แต่ syntax ต่างกันอยู่พอสมควร ตามความคิดผม mysql_query ใช้เวลาเรียกข้อมูล (ซึ่งต้องใช้ mysql_select_db ร่วมด้วยเพื่อกำหนดดาต้าเบสที่เข้าไปใช้)
ส่วน mysql_db_query คงจะใช้เวลาสร้างตารางฐานข้อมูล หรือคำสั่งที่ไม่ได้เข้าไปยุ่งกับตารางใดตารางนึงโดยเฉพาะ ล่ะมั้ง (เพราะกำหนดแค่ DB ก็ใช้ได้)
- [ $result = mysql_fetch_array($db_query); ] ใช้ดึงข้อมูลที่คิวรี่แล้วมาไว้ในอาร์เรย์ แล้วก็ใช้คำสั่ง for วนเอาแต่ต้องใช้ร่วมกับคำสั่ง...
- [ $rows = mysql_num_rows($db_query); ] ใช้นับจำนวนเรคคอร์ด (จำนวนชุดข้อมูล) ที่คิวรี่ออกมา ถ้าค่านี้ว่าง (empty($rows) เป็นจริง) แสดงว่าไม่มีข้อมูลตามที่คิวรี่ ปกติจะเก็บเป็นจำนวนชุดออกมา ใช้ประโยชน์เวลาดึงข้อมูลโดยใช้ for
เวลาใช้ข้อมูลใน $result จริง ๆ ต้องเอาคำสั่ง fetch_array ไปไว้ใน for (ดึงทีละชุดจนครบ) แล้วสั่งแสดงผล (echo) ใน for ซะเลย วิธีเรียกข้อมูลตามฟิลด์ของแต่ละชุดคือให้ใส่..
$result[field-name]
เช่นในตาราง test1db มีฟิลด์ id, name, age เวลาเรียกให้ใช้ $result[id] , $result[name] ,$result[age] เป็นต้น
ที่ลองดูเมื่อวานแล้วก็เป็นการแสดงผลธรรมดาอย่างเช่น นับจำนวนคนออนไลน์ ข้อมูลผู้ใช้งานเป็นต้น
PHP มีเรื่องเดียวที่ค่อนข้างจะน่าเบื่อมากเมื่อเทียบกับภาษา C คือ "ตัวแปรทุกตัวต้องมี $ นำหน้า" ...เฮ้อ~ เซงว่ะ
(เซ็งเนื่องจากตก $ หลายรอบมาก)
ใครได้อ่านอาจจะงงตึ้บ ๆ อยู่นะ แต่ว่าผมพยายามอธิบายส่วนนึงละ ไว้รอบหน้าผมจะเอาตัวอย่างการใช้เป็น สคริปต์ มาให้ดูจะดีกว่า
~แต่นั่นหมายถึงว่าอ่านตรงนี้พอจะเข้าใจแล้วอะนะ 55+
~
ป.ล. ทำบล็อคตอนเช้าสบายใจกว่าจิง ๆ ด้วยล่ะ เน็ตไม่อืด 
#1 By on 2005-08-13 10:45