PHP วิธีการ Save Array Object ลงฐานข้อมูล

สวัสดีจ้าเพื่อน ๆ มีใครกำลังมองหาวิธีการเขียนโค้ด PHP เพื่อบันทึกขึ้น Array และ Object ลงไปในฐานข้อมูลอยู่บ้าง ที่จริงสามารถทำได้ง่าย ๆ เลยโดยใช้ Function serialize() และ unserialize() ของ PHP เรามีตัวอย่างโค้ด และ วิธีการใช้งานมาให้เพื่อน ๆ ดูกันที่นี่เลยจ้า

ตัวอย่าง วิธีการบันทึกค่า Array ลง Database ด้วย PHP

โค้ดด้านล่างคือการแปลงค่า Array ให้เป็นข้อมูลที่ Storable แล้วโดยใช้ Function serialize() ก่อนที่จะทำการบันทึกลงฐานข้อมูล

$test = [
    'ID' => 1,
    'post_date' => '2021-05-18 06:42:56',
    'post_title'=> 'Test',
    'post_status' => 'publish'
];
echo $serializeTest = serialize($test);
//ข้อมูลหลังแปลงค่า a:4:{s:2:"ID";i:1;s:9:"post_date";s:19:"2021-05-18 06:42:56";
s:10:"post_title"; s:4:"Test";s:11:"post_status";s:7:"publish";}
$update_sql = "UPDATE `wp_postmeta` SET
meta_value = %s
WHERE post_id = %s AND meta_key = %s";
$wpdb->query($wpdb->prepare($update_sql, $serializeTest, $post->ID, 'panels_data'));

และนี้คือรูปตัวอย่างข้อมูลที่ได้รับการ Storable และบันทึกลงฐานข้อมูล

ตัวอย่าง วิธีดึงค่า Array จาก Database มาแสดงด้วย PHP

โค้ดดึงค่ามาจากฐานข้อมูล ก่อนจะใช้ Function unserialize() เพื่อแปลงค่าข้อมูลที่ถูก Storable ให้กลับมาเป็น Array

$sql = "SELECT meta_key FROM `wp_postmeta` WHERE post_id = %s AND meta_key = %s";
$key_value = $wpdb->get_col( $wpdb->prepare( $sql, $post->ID, 'panels_data' ));

//ข้อมูลก่อนแปลงค่า a:4:{s:2:"ID";i:1;s:9:"post_date";s:19:"2021-05-18 06:42:56";
s:10:"post_title";s:4:"Test";s:11:"post_status";s:7:"publish";}
$array = unserialize($key_value);
echo "<pre>";
print_r($array);
echo "</pre>";
//ข้อมูลหลังแปลงค่า
Array
(
    [ID] => 1
    [post_date] => 2021-05-18 06:42:56
    [post_title] => Test
    [post_status] => publish
)

ตัวอย่าง วิธีการบันทึกค่า Object ลง Database ด้วย PHP

โค้ดด้านล่างคือการแปลงค่า Object ให้เป็นข้อมูลที่ Storable แล้วโดยใช้ Function serialize() ก่อนที่จะทำการบันทึกลงฐานข้อมูล

* จุดสังเกตุความแตกต่างเมื่อใช้ serialize() กับ Array และ Object ก็คือ หลังจากแปลงค่า Text ที่ได้จากการแปลงค่า Object จะมีคำว่า stdClass อยู่ในชุด Text ในขณะที่ Text ที่ได้จากการแปลง Array จะไม่มีคำนี้อยู่ สามารถใช้เป็นจุดสังเกตุในกรณีที่เราตรวจสอบฐานข้อมูล ข้อมูลที่เรากำลังดูอยู่เก็บค่าตัวแปร Array หรือตัวแปร Object อยู่

$test = (object)[
    'ID' => 1,
    'post_date' => '2021-05-18 06:42:56',
    'post_title'=> 'Test',
    'post_status' => 'publish'
];
echo $serializeTest = serialize($test);
//ข้อมูลหลังแปลงค่า O:8:"stdClass":4:{s:2:"ID";i:1;s:9:"post_date";s:19:"2021-05-18 06:42:56";
s:10:"post_title";s:4:"Test";s:11:"post_status";s:7:"publish";}
$update_sql = "UPDATE `wp_postmeta` SET
meta_value = %s
WHERE post_id = %s AND meta_key = %s";
$wpdb->query($wpdb->prepare($update_sql, $serializeTest, $post->ID, 'panels_data'));

ตัวอย่าง วิธีดึงค่า Object จาก Database มาแสดงด้วย PHP

โค้ดดึงค่ามาจากฐานข้อมูล ก่อนจะใช้ Function unserialize() เพื่อแปลงค่าข้อมูลที่ถูก Storable ให้กลับมาเป็น Object

$sql = "SELECT meta_key FROM `wp_postmeta` WHERE post_id = %s AND meta_key = %s";
$key_value = $wpdb->get_col( $wpdb->prepare( $sql, $post->ID, 'panels_data' ));

//ข้อมูลก่อนแปลงค่า O:8:"stdClass":4:{s:2:"ID";i:1;s:9:"post_date";s:19:"2021-05-18 06:42:56";
s:10:"post_title";s:4:"Test";s:11:"post_status";s:7:"publish";}
$object = unserialize($key_value);
echo "<pre>";
print_r($object);
echo "</pre>";
//ข้อมูลหลังแปลงค่า
stdClass Object
(
    [ID] => 1
    [post_date] => 2021-05-18 06:42:56
    [post_title] => Test
    [post_status] => publish
)

เป็นยังไงกันบ้างคะ สำหรับบทความเรื่อง PHP วิธีการ Save Array Object ลงฐานข้อมูล ดูเพลินก็หวังว่าบทความของเราจะเป็นประโยชน์ต่อท่านไม่มากก็น้อย นอกจากนี้ เรายังมีบทความดี ๆ อีกมากมาย คุณสามารถลองคลิกเขาไปอ่านบทความอื่น ๆ ตามลิงค์ด้านล่างได้เลย

เทคนิคอื่นๆ เกี่ยวกับการเขียนโค้ด คลิก

อย่าลืมไปติดตาม Facebook fanpage ของเรา >> Click <<

หมวดหมู่เกี่ยวกับ Coding

เนื้อหาที่คล้ายกัน...

วิธีทำ Textbox Autocomplete จากฐานข้อมูล ด้วย jQuery Ajax

วิธีทำ Textbox Autocomplete จากฐานข้อมูล ด้วย jQuery Ajax

ดูเพลิน Admin - 16 ม.ค. 66
PHP + MySQL แก้ปัญหา ภาษาต่างดาว ในหน้าเว็บไซต์

PHP + MySQL แก้ปัญหา ภาษาต่างดาว ในหน้าเว็บไซต์

ดูเพลิน Admin - 28 ธ.ค. 65

เรื่องราวเอื่น ๆ ในหมวดเทคนิคการเขียนโค้ด...

let value = 147/32; let result_value = Math.round(value); console.info('Value = '+value+' Result = '+result_value); //ผลลัพธ์ Value = 4.59 Result = 5let value = 147/33; let result_value = Math.round(value); console.info('Value = '+value+' Result = '+result_value); //ผลลัพธ์ Value = 4.454 Result = 4