サポート » 使い方全般 » wp_usersへのカラム追加機能につきまして

  • 解決済 tenten64

    (@tenten64)


    wp_usersへのカラムを追加しましたが、これがなぜか「mycol がまだなければ追加」という条件分岐が効かないのか、追加後にエラーになります。

    add_col_to_wp_users()自体を削除すればいいだけですが、なぜエラーになるのかを知りたいと思い、公式フォーラム様へご質問させて頂きました。

    以下if(!isset($row->mycol))はなぜ効かないのでしょうか?

    
    function add_col_to_wp_users() {
    	global $wpdb;
    	$row = $wpdb->get_row("SELECT * FROM wp_users");
    
    	// mycol がまだなければ追加
    	if(!isset($row->mycol)){
    		$wpdb->query("ALTER TABLE wp_users ADD mycol VARCHAR(10)");
    	}	
    }
    
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • munyagu

    (@munyagu)

    こんにちは

    $row->mycolには何が入っているのでしょうか?
    ダンプするなどして確認してみてください。

    また、SHOW CREATE TABLE tbl_nameでテーブル構造を確認する方法もあるようですよ。
    参考)https://dev.mysql.com/doc/refman/5.6/ja/show-create-table.html

    ishitaka

    (@ishitaka)

    property_exists() で判定するのはどうでしょう。

    if ( ! property_exists( $row, 'mycol' ) ) {

    ishitaka

    (@ishitaka)

    DESCRIBE 構文で確認することもできそうです。
    https://dev.mysql.com/doc/refman/5.6/ja/describe.html

    $results = $wpdb->get_results("DESCRIBE $wpdb->users `mycol`");
    if ( empty( $results) ) {
    • この返信は4年前にishitakaが編集しました。
    トピック投稿者 tenten64

    (@tenten64)

    お二方ご回答ありがとうございます。ishitaka様の方法でできました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「wp_usersへのカラム追加機能につきまして」には新たに返信することはできません。