Line#11:หัดขับPHP+MySQL

posted on 13 Aug 2005 09:05 by aima

เมื่อ 2 วันก่อนผมได้ไปดั้นด้นค้นหาตามเว็บต่างๆ ในเรื่องของ PHP
เน้นหนักมากในการใช้ MySQL ร่วมด้วย เพราะว่าอยากจะเขียนให้เป็น

อุตส่าห์ใช้ MySQL พอได้ (ใช้ phpMyAdmin) ก็เลยอยากทำสคริปต์ที่ติดต่อกับฐานข้อมูลเป็นด้วย

รูปแบบการติดต่อ MySQL ด้วย PHP เบื้องต้น

<?php
$host = 'localhost'; //ตำแหน่งของเครื่องที่เปิด MySQL
$user = 'xxxxxx'; //username ที่ใช้ติดต่อ
$pass = 'yyyyyy'; //รหัสผ่านที่ใช้ติดต่อ

$conn = mysql_connect($host,$user,$pass) or die("ไม่สามารถเชื่อมต่อกับ MySQL");
// คำสั่งเชื่อมต่อ MySQL ถ้าเชื่อมไม่ได้ให้แสดงผลว่าไม่สามารถเชื่อมต่อได้
if (!$conn) {
exit(); // ถ้าเชื่อมต่อไม่สำเร็จให้จบการทำงานสคริปต์
} else {
echo "ยินดีด้วย เชื่อมต่อสำเร็จ!";
}

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+ ~

ป.ล. ทำบล็อคตอนเช้าสบายใจกว่าจิง ๆ ด้วยล่ะ เน็ตไม่อืด

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

โอ่วววววว นู๋ไม่รู้เรื่องงงงงงง

#1 By on 2005-08-13 10:45

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

#6 By ตานี *_* จ๋า..... on 2006-02-12 09:20

เช้ดดดด ไอ้หมาเทพแล้ว