ในระยะสั้นใช่$wpdb
ชั้นเรียน ดู Codexสำหรับข้อมูลเพิ่มเติม
เมื่อใดก็ตามที่คุณมีปฏิสัมพันธ์กับตารางที่กำหนดเอง (หรือตารางใด ๆ จริง ๆ ) คุณควรผ่าน$wpdb
- โดยเฉพาะอย่างยิ่งให้แน่ใจว่าคุณคุ้นเคยกับprepare
วิธีการที่สามารถช่วยในการค้นหาและป้องกันการฉีด
คุณควรคุ้นเคยกับมันอยู่แล้วเพราะคุณควรจะใช้มันเพื่อสร้างตาราง ที่ตะขอติดตั้งคุณควรมีสิ่งต่อไปนี้:
$charset_collate = '';
if ( ! empty($wpdb->charset) )
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
if ( ! empty($wpdb->collate) )
$charset_collate .= " COLLATE $wpdb->collate";
//Create custom table
$sql_custom_table ="CREATE TABLE {$wpdb->prefix}my_table (
id bigint(20) unsigned NOT NULL auto_increment,
column_a varchar(255) default NULL,
column_b varchar(255) default NULL,
PRIMARY KEY (id)
) $charset_collate; ";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql_custom_table);
รหัสนี้จะทำงานจริงทุกครั้งที่เปิดใช้งานปลั๊กอิน (เช่นไม่ได้ติดตั้ง) ดังนั้นมันจะทำงานเมื่อมีคนปรับปรุง plug-in โดยอัตโนมัติ หมายเหตุ:หากพวกเขาอัปเกรดโดยแทนที่ปลั๊กอินด้วยตนเอง - จะไม่ - ดังนั้นคุณจะต้องทริกเกอร์โค้ดด้านบนadmin_init
เมื่อปลั๊กอินของคุณได้รับการอัพเกรด (หมายเลขร้านค้าในตารางตัวเลือกตรวจสอบเวอร์ชันปัจจุบัน) .
ตอนนี้คุณไม่ต้องการให้CREATE TABLE
คำสั่ง SQL รันทุกครั้งที่คุณอัพเดตปลั๊กอิน - นี่คือที่dBDelta()
มา
ก่อนเรียกใช้คำสั่งด้านบน - มันจะตรวจสอบว่ามีตารางอยู่หรือไม่ ยิ่งไปกว่านั้นมันจะตรวจสอบประเภทคอลัมน์ ดังนั้นหากตารางไม่มีอยู่มันจะสร้างขึ้นมาถ้ามี แต่มีบางคอลัมน์ที่มีการเปลี่ยนแปลงมันจะทำการอัปเดตและหากไม่มีคอลัมน์ - จะเพิ่มเข้าไป
น่าเสียดาย - หากคุณลบคอลัมน์จากด้านบนคอลัมน์นั้นจะไม่ลบคอลัมน์โดยอัตโนมัติ ในการลบคอลัมน์ / ตารางคุณต้องระบุเฉพาะDROP
(ตรวจสอบว่ามีอยู่ก่อนคุณ)