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


















