การปรับแต่ง codeigniter ให้สามารถเรียกใช้ storeprocedure ของ mysql ได้

เนื่องจากเราไม่สามารถใช้งาน store procedure ของ MySQL บน codeigniter ตรงๆ ได้ ตรงนี้ต้องเข้าไปปรับแต่ง ดังนี้ครับ

  1. แก้ไฟล์ config  ( application/config/database.php ) เปลี่ยน dbdriver จาก mysql -> mysqli
  2. แก้ไฟล์ไดรเวอร์ของเฟรมเวิร์ค ( system/driver/mysqli_result.php)  โดยเพิ่มฟังก์ชั่นนี้
    function next_result()
    {
    if (is_object($this->conn_id)){
    return mysqli_next_result($this->conn_id);
    }
    }
    

จากนั้นเวลาเราเรียกใช้ store procedure ให้เราเรียกใช้ฟังก์ชั่น  next_result() และ free_result( )(ตัวนี้ถ้าเราไม่ได้ SELECT ตัวแปร out ก็ให้ละไว้ครับ ไม่งั้น resultset ที่เราได้จะเข้าถึงไม่ได้)  หลังจากที่ CALL Procedure ก่อนที่จะเรียกคำสั่งถัดไปครับ เช่น เราเรียก CALL sample(‘param1′,’param2’, @result )  และเราต้องการ select @result ออกมาให้เขียนแบบนี้ครับ


$sql = "CALL sample( ?, ? ,@e_max ) " ;
 $parameter = array( $param1, $param2 );
 $qresult = $this->db->query($sql, $parameter );
 $qresult->next_result();
 $qresult->free_result(); 
 $result = $this->db->query("SELECT @result as result");

เท่านี้เราก็สามารถใช้งาน store procedure บน codeigniter ได้ สบาย ๆ

แหล่งอ้างอิง

การติดตั้ง CUPS บน Raspberry PI

พิมพ์ไว้กันลืม เผื่อต้องเซ็ตอีก อันนี้ผมยืมของเพื่อนมาลองเล่น ก่อนตัดสินใจซื้อ PI เป็นของตัวเอง ขั้นตอนการติดตั้งมีดังนี้

1. ตั้ง password ให้ยูสเซอร์ pi เป็นอันดับแรก (มันจะถามตอนหน้าจัดการ printer ของ CUPS)

2. คอนฟิก PI ให้สตาร์ทอัพเป็น GUI โหมด (เพราะเราจะได้คอนฟิกมันง่าย ๆ)

3. เปิด terminal มาติดตั้ง package กันเลย

sudo aptitude update
sudo aptitude install avahidaemon cups cupspdf pythoncups
adduser pi lpadmin
service cups restart

Read more