Archive for August, 2009

Getting Real หนังสือฟรีออนไลต์คุณภาพสูง

ผมหายไปนานมากช่วงนี้เพราะทำงาน + มีโปรเจคที่อยากทำมากมาย เลยพยายามที่จะทำในสิ่งที่ตัวเองอยากทำเลยไม่ค่อยได้อัพเดตบล็อค วันนี้ผมเลยมาพร้อมกับหนังสือที่ผมกำลังอ่านอยู่ซึ่งอยู่บน Internet ฟรีและดีมากๆ ชื่อหนังสือมีชื่อว่า “Getting Real” ถ้าผมแปลแบบโดนๆ น่าจะแปลว่า “ทำให้เป็นจริง” หนังสือพูดคุยเรื่องประมาณไหนนะหรอ ประมาณนี้เลย

  • พูดถึงการพัฒนา Software แบบสร้างให้น้อยลง
  • การทำให้มันเป็นจริง แทนที่จะรอโอกาส
  • ความปราถนาของคุณ

ซึ่งผมยังอ่านไม่ได้มากเลย แต่ผมเห็นว่าหนังสือเล่มนี้น่าอ่านมาก (ผมรู้จักนานแล้ว แต่พึงมีโอกาสได้อ่าน) เลยนำมาฝากทุกๆท่าน แล้วไม่เป็นการทิ้งช่วงไม่อัพบล็อคนานจนเกินไป

Getting Real

วิธีเรียกใช้ 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;

แบบนี้เป็นต้นครับ ไม่ยากเลยใช่ไหมครับวันนี้ผมลาไปก่อนแล้วครับ :)

Next Page »