สรุปการ Query ข้อมูลโดยใช้ PDO
แบ่งออกเป็น 3 กรณีใหญ่ๆ- Query ข้อมูลที่ไม่มีผลลัพธ์ ได้แก่ (เพิ่ม , ปรับปรุง , ลบ)
- Query ข้อมูลแบบ Single Time
- Query ข้อมูลแบบ Multiple Times
คิวรี่ข้อมูล (ไม่ต้องการ Response)
(เพิ่ม,ปรับปรุง,ลบ) มี 2 method ที่ใช้งานคือ
exec และ lastInsertId
- exec
ใช้ execute คำสั่ง SQL ได้เพียง 1 คำสั่ง
ผลลัพธ์ : จำนวนแถวที่มีการเปลี่ยนแปลงตามคำสั่ง SQL
ตัวอย่าง :
$sql = "INSERT INTO member (member_name) VALUES ('ak1')";
$result = $obj_pdo->exec($sql);
- lastInsertId
ตัวอย่าง :
$result = $obj_pdo->lastInsertId();
echo 'ID ของแถวข้อมูลที่เพิ่มล่าสุด :' .$result;
การ SELECT ข้อมูลมาใช้งาน
- method : query()
ตัวอย่าง :
$sql = "SELECT * FROM member";
$q = $obj_pdo->query($sql);
$result = q->fetchAll();
print_r($result);
การคิวรี่แบบ Multiple Times
เป็นการคิวรี่แบบจัดเตรียมคำสั่ง SQL ไว้ก่อนโดยใช้ Method : prepare();
และจะมีการผูกพารามิเตอร์ให้กับคำสั่ง SQL ที่เตรียมไว้โดยใช้ method : bindParam();
และกำหนดพารามิเตอร์ภายหลัง โดยการคิวรี่คำสั่งที่เตรียมไว้โดยใช้ Method : execute();
- สามารถคิวรี่ข้อมูลได้ไม่จำกัดจำนวนครั้ง
- ใช้ได้กับทุกคำสั่ง SQL เช่น select , insert , update , delete
ตัวอย่างการใช้งาน prepare , bindParam , execute
$conn = new PDO("mysql:host=localhost; dbname=webboard", "user", "pass");
$q = $conn->prepare("SELECT * FROM member WHERE member_id = ?");
$q->bindParam(1, $memberid, PDO::PARAM_INT);
$result = $q->execute();
ตัวอย่างการ FetchAll(STYLE)
$conn = new PDO("mysql:host=localhost; dbname=webboard", "user", "pass");
$q = $conn->prepare("SELECT * FROM member WHERE m_username = ? AND m_password = ? ");
$q->bindParam(1, $username);
$q->bindParam(2, $password);
$result = $q->execute();
$data = $result->fetchAll(style); // นำ result ไปใช้งานต่อ
print_r($result);
การแสดงผลลัพธ์โดยการใช้ FetchAll ใน STYLE ต่างๆดังนี้
PDO::FETCH_NUM :
return : array ,จัดลำดับอินเด็กซ์ของอะเรย์ = ตัวเลขเริ่มต้นที่ 0
output :
Array (
[0] => Array (
[0] => 1
[1] => ak1
[2] => akone1
[3] => 123456
[4] => 123456
[5] => 123456
[6] => 123456
[7] => 80000000 ) )
PDO::FETCH_ASSOC :
return : array ,ใช้ชื่อคอลั่มเป็นอินเด็กซ์
output :
Array ( [0] => Array
( [m_id] => 1
[m_profilename] => ak1
[m_username] => akone1
[m_password] => 123456
[m_question] => 123456
[m_answer] => 123456
[m_email] => 123456
[m_phonenumber] => 80000000 ) )
PDO::FETCH_BOTH :
return : array = ใช้ทั้งตัวเลข , ลำดับของคอลั่มน์ และ ชื่อคอลั่มน์ เป็นอินเด็กซ์
output :
Array ( [0] => Array (
[m_id] => 1
[0] => 1 [m_profilename] => ak1
[1] => ak1 [m_username] => akone1
[2] => akone1 [m_password] => 123456
[3] => 123456 [m_question] => 123456
[4] => 123456 [m_answer] => 123456
[5] => 123456 [m_email] => 123456
[6] => 123456 [m_phonenumber] => 80000000
[7] => 80000000 ) )
PDO::FETCH_OBJ :
return : object ใช้ชื่อคอลั่มเป็น Poperty
output : Array (
[0] => stdClass Object (
[m_id] => 1 [m_profilename] => ak1
[m_username] => akone1
[m_password] => 123456
[m_question] => 123456
[m_answer] => 123456
[m_email] => 123456
[m_phonenumber] => 80000000 ) )
ตัวอย่างการ FetchAll(STYLE)
$conn = new PDO("mysql:host=localhost; dbname=webboard", "user", "pass");
$q = $conn->prepare("SELECT * FROM member WHERE m_username = ? AND m_password = ? ");
$q->bindParam(1, $username);
$q->bindParam(2, $password);
$result = $q->execute();
$data = $result->fetchAll(style); // นำ result ไปใช้งานต่อ
print_r($result);
การแสดงผลลัพธ์โดยการใช้ FetchAll ใน STYLE ต่างๆดังนี้
PDO::FETCH_NUM :
return : array ,จัดลำดับอินเด็กซ์ของอะเรย์ = ตัวเลขเริ่มต้นที่ 0
output :
Array (
[0] => Array (
[0] => 1
[1] => ak1
[2] => akone1
[3] => 123456
[4] => 123456
[5] => 123456
[6] => 123456
[7] => 80000000 ) )
PDO::FETCH_ASSOC :
return : array ,ใช้ชื่อคอลั่มเป็นอินเด็กซ์
output :
Array ( [0] => Array
( [m_id] => 1
[m_profilename] => ak1
[m_username] => akone1
[m_password] => 123456
[m_question] => 123456
[m_answer] => 123456
[m_email] => 123456
[m_phonenumber] => 80000000 ) )
PDO::FETCH_BOTH :
return : array = ใช้ทั้งตัวเลข , ลำดับของคอลั่มน์ และ ชื่อคอลั่มน์ เป็นอินเด็กซ์
output :
Array ( [0] => Array (
[m_id] => 1
[0] => 1 [m_profilename] => ak1
[1] => ak1 [m_username] => akone1
[2] => akone1 [m_password] => 123456
[3] => 123456 [m_question] => 123456
[4] => 123456 [m_answer] => 123456
[5] => 123456 [m_email] => 123456
[6] => 123456 [m_phonenumber] => 80000000
[7] => 80000000 ) )
PDO::FETCH_OBJ :
return : object ใช้ชื่อคอลั่มเป็น Poperty
output : Array (
[0] => stdClass Object (
[m_id] => 1 [m_profilename] => ak1
[m_username] => akone1
[m_password] => 123456
[m_question] => 123456
[m_answer] => 123456
[m_email] => 123456
[m_phonenumber] => 80000000 ) )