การ insert หรือ update ฐานข้อมูลโดยไม่ต้องเขียน query
แก้ไขล่าสุด ใน วันจันทร์ที่ 26 กันยายน 2554 เวลา 22:34 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันเสาร์ที่ 03 พฤษภาคม 2551 เวลา 01:05 น.
โดยปกติเรามักจะคุ้นเคยกับการ insert หรือ update ฐานข้อมูลโดยการเขียน query แบบเต็มๆ ซึ่งบางครั้งก็ค่อนข้างยุ่งยาก โดยเฉพาะเรื่องของ qoute แต่ในคราวนี้เราจะมาใช้ความสามารถของ database class ในจุมลากันโดยไม่ต้องเขียน query กันเลย น่าสนใจแล้วล่ะซี่ มาดูกันต่อเลย
database class และตัวแปร $database
database class ในจุมลานับว่าเป็น class ที่มีประโยชน์มากทีเดียวหากว่าเข้าใจและใช้อย่างถูกต้อง และ ตัวแปร $database ก็คือ object variable หรือตัวแปรแบบ object ที่ core ของ Joomla! สร้างไว้ให้เราเรียกใช้แล้วหากเราเรียกใช้ใน function ก็เพียงแต่ระบุเป็น global คือ global $database; ก็สามารถเริ่มใช้งานได้เลย และการ insert และ update ของเราในวันนี้ก็จะทำโดยใช้ method สองตัวหลักๆ ของมันคือ insertObject และ updateObject นั่นเอง โดยรายละเอียดของการใช้งาน method นี้จะคล้ายกันคือการ insert หรือ update ฐานข้อมูลโดยการดูจาก properties ของ object
boolean insertObject ( string $table, object &$object [, string $keyname [, boolean $verbose ]] )
boolean updateObject ( string $table, object &$object [, string $keyname [, boolean $updateNull ]] )
โดยที่ $table คือตารางที่เราต้องการ update หรือ insert เช่น #__hrm_employees เป็นต้น
$object ก็คือ object ที่มี data ที่เราต้องการใช้ในการ update หรือ insert
$keyname คือ primary key ของตารางที่ต้องการจะ update หรือ insert ซึ่งจะ update ให้เราอัฒโนมัติหลังจากการ insert
$updateNull ถ้ามีค่าเป็น TRUE ค่าของ object ที่มีค่าเป็น NULL จะถูก update ทับค่าเดิม แต่ถ้าเป็น FALSE มันจะไม่ถูก update อันนี้สำคัญนะครับในการใช้ updateObject โดยปกติจะเป็น FALSE
ตัวอย่างจาก http://help.joomla.net
function newUser( $name, $username) { global $database; $user = new stdClass; $user->id = NULL; $user->name = $name; $user->username = $username; if (!$database->insertObject( '#__users', $user, 'id' )) { return false; } return $user->id; }
function updateUser( $id, $name, $username) { global $database; $user = new stdClass; $user->id = $id; //filed in database ก็ชื่อ id เหมือนกัน $user->name = $name; //เช่นกัน filed ก็ชื่อ name $user->username = $username; //และ field ก็ชื่อ username if (!$database->updateObject( '#__users', $user, 'id' )) { echo $database->stderr(); return false; } }
| การใช้งาน AJAX กับ Joomla : XAJAX version< ย้อนกลับ | ถัดไป >การใช้งาน mosDBTable |
|---|


