###実現したいこと
WordPressでオリジナルテーブルに$wpdb->insert
でレコードを保存しています。下記のソースコードでそれは問題ありません。
その後に保存されたレコードから任意の値を取得したいです。
###発生している問題
保存はできているのにレコードから値を取得できません。
###ソースコード
上はwp_posts
に保存していて、その後にIDが取得できています。
下のオリジナルテーブルwp_myposts
で保存ができても取得ができない状況です。
PHP
1// 保存も取得もできます。 2$test_num = 100; 3$values = [ 'post_content' => 'value' . $test_num ]; 4$id = my_insert_sql( 'wp_posts', $values ); 5var_dump( $id ); 6 7// 保存はできますが、取得ができません 8$test_num = 200; 9$values = [ 'mycolumn' => 'value' . $test_num ]; 10$id = my_insert_sql( 'wp_myposts', $values ); 11var_dump( $id );
尚、上の関数my_insert_sql()
は以下の流れで保存されます。
php
1function my_insert_sql( $table, $update_info ){ 2 global $wpdb; 3 4 foreach ( $update_info as $v ) { 5 $format_arr[] = my_get_sql_format($v); 6 } 7 8 $wpdb->insert( $table, $update_info, $format_arr ); 9 return $wpdb->insert_id; 10} 11 12function my_get_sql_format( $v ){ 13 $format; 14 $type = gettype( $v ); 15 if ( $type == 'string' ) { 16 $format = '%s'; 17 } elseif ( $type == 'integer' ) { 18 $format = '%d'; 19 } 20 return $format; 21}
###試したこと
上記my_insert_sql()
で、最後の
return $wpdb->insert_id;
となっているところが原因と考えています。
この戻り値はwp_posts
テーブルにしか使えないのでしょうか?
そう思い以下のように試してみましたが、できません。
return $wpdb->mypostid;
さらにstackoverflowを参考に以下のように試してみましたが、できません。
return $wpdb->Auto_increment;
尚、mypostid
のカラムはプライマリーキーで、かつAUTO_INCREMENTがかかっています。
どうすれば、wp_myposts
のテーブルに対してmy_insert_sql()
で保存されたレコードから、mypostid
のカラムの値(またはそれ以外の任意の値)を取得できますでしょうか?
回答2件
あなたの回答
tips
プレビュー