Thursday, December 11, 2014

CodeIgniter : Call Stored Procedure ที่มี Out Parameter นะจ๊ะ

โดยปกติ การเรียกใช้งาน MySQL Stored Procedure ใน CI นั้นไม่ค่อยสะดวกเท่าไหร่ เพราว่า CI อนุญาตให้ Query ข้อมูลได้ทีละครั้ง ซึ่งถ้าเรา Query หลาย ๆ ครั้งจะต้องเป็นการเริ่มต้นใหม่โดยที่ไม่มีส่วนใดของ Query ก่อนหน้ามาเกี่ยวข้องด้วย

แต่สำหรับ Stored Procedure ที่มี Out Parameter นั้นจะต้องทำการ Query ถึง 2 ครั้งโดยครั้งที่ 2 นั้นจะต้อง SELECT ค่าของตัวแปร OUT เพิ่มเข้ามาอีก ดังนั้นเราจึงต้องทำการแก้ไขไฟล์ /system/database/drivers/mysqli/mysqli_driver.php จากบรรทัดที่ 176

function _execute($sql)
{
 $sql = $this->_prep_query($sql);
 $result = @mysqli_query($this->conn_id, $sql);
 return $result;
}
แก้ไขเป็น
function _execute($sql)
{
 $sql = $this->_prep_query($sql);
 @mysqli_multi_query($this->conn_id, $sql);
 $result = @mysqli_store_result($this->conn_id);
 if (@mysqli_more_results($this->conn_id)) {
 @mysqli_next_result($this->conn_id);
}
return $result;
}

สิ่งสำคัญคือ อย่าลืมไป config database ให้ใช้ Driver จาก mysql เป็นmysqli ด้วยนะ เพียงเท่านี้ท่านก็จะสามารถ call Procedure ได้อย่างสบายใจเฉิบ ^^

Tuesday, September 24, 2013

การแก้ไวรัส EXE ที่รำคาญกวนใจ ง่ายนิดเดียว!

ทำตามนี้เลยจ้า ท่านผู้ชม

เมื่อเสร็จแล้วโฟลเดอร์ที่ถูกซ่อนไว้ก็จะแสดงตัวออกมา จากนั้นก็ให้เราลบไฟล์ .exe ทิ้งซะ เป็นอันเสร็จพิธี

Monday, November 12, 2012

PHP : การลบ Line Break ออกจาก String

ปัญหานี้เกิดขึ้นเมื่อตอนที่ต้องการจัดรูปแบบข้อมูล PHP ให้เป็น JSON แต่บังเอิญว่าใน String นั้นมีการขึ้นบรรทัดใหม่ ทำให้ข้อมูล JSON นั้นผิดพลาด จึงต้องจัดการใส่ฟังก์ชั่นเข้าไปเพื่อลบการขึ้นบรรทัดใหม่ (Line Break) ตัวอย่างดังนี้ครับ
$fcv = str_replace(array("\r\n", "\r", "\n"), "", $fcv);
เราสามารถที่จะตรวจสอบความถูกต้องของข้อมูล JSON ได้โดยทำการ Validate ด้วยเว็บไซต์นี้ครับ http://jsonlint.com

Friday, November 9, 2012

ใส่ลูกน้ำ (Comma) ให้กับข้อมูลตัวเลขด้วย JavaScript

การแสดงผลข้อมูลตัวเลข ในกรณีที่ต้องทำการคำนวณด้วย และจะต้องมีการจัดรูปแบบของตัวเลขให้ดูง่ายจะต้องใส่ลูกน้ำ , คั่นระหว่างหลักพัน หลักล้าน หลักพันล้าน ฯลฯ หรืออะไรก็แล้วแต่ เรามีฟังก์ชั่นที่จะสามารถจัดรูปแบบตัวเลขนี้โดย JavaScript ดังนี้ครับ
function addCommas(nStr){
  nStr += '';
  x = nStr.split('.');
  x1 = x[0];
  x2 = x.length > 1 ? '.' + x[1] : '';
  var rgx = /(\d+)(\d{3})/;
  while (rgx.test(x1)) {
   x1 = x1.replace(rgx, '$1' + ',' + '$2');
  }
  return x1 + x2;
}
จากตัวอย่าง จะเป็นการแยกทศนิยมออกมาก่อน จากนั้นให้ Regulat Expression โดยนับจากท้ายจำนวน 3 หลักแล้วใส่ลูกน้ำเข้าไป ง่ายดายมาก ๆ

Tuesday, November 6, 2012

ดึงรูปโพรไฟล์จาก Instagram ด้วย PHP ง่ายนิดเดียว

Instagram เป็น Social Media ที่ได้รับความนิยมอักอันหนึ่ง ซึ่งเหล่าบรรดาไฮโซไฮซ้อ ดารา นักแสดง เซเล็บ(ตีนหมา) รวมถึงประชาชีทั้งหลายที่มีโทรศัพท์หรือแท็ปเล็ตที่ใช้ระบบปฏิบัติการ Android และ iOS ก็นิยมเล่นกัน โดยเว็บไซต์ฮิต ๆ ในไทย ไม่ว่าจะเป็น kapook , manager , mthai และอะไรต่อมิอะไรมากมาย เรามาดูวิธีการดึงรูปโพรไฟล์จาก ig แบบง่าย ๆ กัน ดังนี้
function getIgProfilePic($iguser) {
 $file_str = file_get_contents('http://followgram.me/' . $iguser);
 $html = new DOMDocument();
 $html->loadHTML($file_str);
 $img = $html->getElementsByTagName('img');

 return $img->item(1)->getAttribute('src');
}
ฟังก์ชั่นนี้จะใช้วีธีการไปดูดโค้ด HTML จากเว็บ followgram.me มาแล้วนำมาเรียบเรียงด้วยคลาส DOMDocument จากนั้นก็ return ค่า attribute src ของภาพที่ 2 (index ที่ 1) ออกมานั่นเอง ง่ายป่ะ อิอิ