我的代码ALTER TABLE
不使用prepare()
方法$wpdb
因此,需要正确更新代码。查询的例子很多SELECT
, 等,但找不到ALTER TABLE
SQL中包含多个选项。
这是旧代码。
$post_qry = $wpdb->get_row( "SELECT * FROM $wpdb->posts" );
if ( ! isset( $post_qry->forum_id ) ) {
$wpdb->query( "ALTER TABLE {$wpdb->posts} ADD `forum_id` INT( 10 )
UNSIGNED NOT NULL DEFAULT \'0\' AFTER `ID` " );
}
这是我第一次尝试,但有些地方不适合添加。
if ( ! isset( $post_qry->forum_id ) ) {
$wpdb->query( $wpdb->prepare( "ALTER TABLE {$wpdb->posts} ADD col= %s INT( 10 )
UNSIGNED NOT NULL DEFAULT \'0\' AFTER col = %s ", \'forum_id\', \'ID\' ) );
}
首先,使用是否合适
ADD col =
或者是
ADD COLUMN=%s
?
第二,在后面陈述同样正确col=%s
?
第三,应该INT
和UNSIGNED
用作%s
而且
感谢您抽出时间解释,并指出good resource.
SO网友:LPH
这个问题的答案实际上来自于@TomJNowell。不要使用MySQL调用,而是使用WordPress中包含的本机函数:
update_post_meta ( $post->ID , \'forum_id\', $thread_id );
其中
forum_id
是钥匙和
$thread_id
是值。我试过了
add_post_meta
但这造成了重复。
检索元数据
$thread_id = get_post_custom_values( \'thread_id\', $post->ID);
现在,我正在寻找添加到评论元的方法。希望这能帮助其他人。