サポート » 使い方全般 » $wpdb->prepare() で生成されたクエリを取得できますか?

  • 解決済 nekoton

    (@nekoton)


    次の書き方で$wpdb->prepare()を実行しているのですが、このときのクエリを取得する方法はありませんでしょうか?

    10行目にある//「$wpdb->prepare()のクエリ」をここで取得したいという部分のことです。

    $query = "SELECT * FROM wp_table WHERE ID = %d";
    $prepares = [ 100 ];
    $rows = $wpdb->get_results( $wpdb->prepare( $query, ...$prepares ), ARRAY_A );	
    if( $wpdb->last_error ){
        // エラーをthrow
    }else{
        $result = [
            'status' => 'ok',
            'rows'   => $rows,
            'query'  => '' //「$wpdb->prepare()のクエリ」をここで取得したい
        ];
    }

    つまりSELECT * FROM wp_table WHERE ID = 100という値を、$result['query']に取得したいという意図です。

    試しに下記$wpdb->queriesを実行してみたのですが、

        $result = [
            'status' => 'ok',
            'rows'   => $rows,
            'query'  => $wpdb->queries
        ];

    上記は「$wpdb->prepare()のクエリ」に限らず、大量のクエリを取得してしまいまして、でもそんなに大量にはいらないんですよね…。$wpdb->prepare()の結果どんなクエリが作られたか?だけでいいんです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「$wpdb->prepare() で生成されたクエリを取得できますか?」には新たに返信することはできません。