วิธีเรียกใช้ Call Stored Procedure ของ PHP 5.2.6
พอดีผมมีปัญหาในการเรียก Stored Procedure ด้วย mysql_query แบบธรรมดาซึ่งมันขึ้นว่า Stored Procedure Context ไม่เหมือนกัน หลังจากที่ไปลองๆอ่านจากหลายๆเว็บแล้ว ผมว่าคงเป็นปัญหาของ Version นี้ทางแก้ก็คือต้องรอ Version ต่อไป หรือไม่ก็ใช้ PDO ซะ !!
PDO คือตัวติดต่อกับฐานข้อมูลซึ่งไม่ได้ติดต่อได้เฉพาะ MySQL แต่ติดต่อได้มากมายไม่ว่าจะเป็น Oracle , MS SQL , PostgreSQL ฯลฯ ส่วนวิธีเรียกใช้นั้นไม่ยากเพียงแต่ต้องไปเปิด extension ของ php นะครับซึ่งใครจะใช้สำหรับ Database ตัวไหนมันจะเป็นชื่อประมาณนี้ pdo_Database เมื่อเปิดเสร็จแล้วมาดูวิธีการใช้งานเรียก Stored Procedure กันซึ่งเหมือนกับการ Query ข้อมูลเดะๆ
$pdo = new PDO('mysql:dbname=duocorevp;host=127.0.0.1;port=8889', 'root', 'root');
print '<h3>PDO: simple select</h3>';
foreach($pdo->query('call countUsers();') as $row)
{
print_r($row);
}
สังเกตุได้ว่าเหมือน Query เปะแต่จะเป็นแนวใช้ Object แทนแบบ functional เพิ่มเติดอีกนิดถ้าเรารู้อยู่แล้วว่ามันจะออกมาแถวเดียวเราสามารถทำแบบนี้ได้เลยนะครับ
$result = $pdo->query('call countUsers()')->fetch();
แต่การเขียนแบบนี้ ก็อาจมีข้อผิดพลาดเกิดขึ้นได้ในกรณีที่ไม่มีค่าส่งกลับมา ดังนั้นเราควรเขียนดักไว้สักเล็กน้อยแบบนี้
if($pdo->query('call countUsers()'))
$result = $pdo->fetch();
else
$result = null;
แบบนี้เป็นต้นครับ ไม่ยากเลยใช่ไหมครับวันนี้ผมลาไปก่อนแล้วครับ
| Tweet |
เนื้อหาคล้ายกันที่น่าสนใจ
