web-dev-qa-db-ja.com

php-scriptからwpdb経由でストアドプロシージャにパラメータとして変数を渡す

私はphpスクリプトからstroedプロシージャ呼び出しにphp変数を渡すことでわずかな問題を抱えています。詳細は次のとおりです。

これはとても完璧に動作する方法です - パラメータをstringとして渡します。

$myHTML = $wpdb->query( 'CALL show_average_time_spent(2, "2011-10-24", "2011-10-24", @myHTML)' );

完璧な結果をもたらします。

そしてこれはどのようには機能せず、エラーを投げます(変数としてパラメータを渡します):

$date_from = '2011-10-24';
$date_to = '2011-10-27';
$myHTML = $wpdb->query( 'CALL show_average_time_spent(2, $date_from, $date_to, @myHTML)' );

このエラーを投げます:

WordPressデータベースエラー:['フィールドリスト'の '不明な列' $ date_from '] CALL show_average_time_spent(2、$ date_from、$ date_to、@myHTML)

$date_fromは、このphpスクリプトで選択された日付を保持するためにのみ使用されています。

私は本当にこの問題に関するあらゆる種類の助けに感謝します。

この問題の解決を手助けしようとしている皆さんに感謝します。

乾杯、ジョー

3
JSS

どのように prepare あなたのステートメントを見るためにコーデックスを見てください:

// Example straight copy-paste from Codex
$metakey    = "Harriet's Adages";
$metavalue  = "WordPress' database interface is like Sunday Morning: Easy.";

$wpdb->query( $wpdb->prepare( 
    "
        INSERT INTO $wpdb->postmeta
        ( post_id, meta_key, meta_value )
        VALUES ( %d, %s, %s )
    ", 
    10, 
    $metakey, 
    $metavalue 
) );

あなたのコードでもこれを試してください(それはsecurityについてです)。

2
kaiser