2012-01-14 13 views
0

私はそれが列にpost_id、purchase_id、ユーザ名、電子メールや変更があり、ペイパルIPNによって追加されwp_purchasesというカスタムテーブルを持っている:

$user = $_POST['username']; 
$post_id = $post->ID; 
global $wpdb; 
$wpdb->purchases = $table_prefix . 'purchases'; 
$result = $wpdb->query("SELECT * FROM $wpdb->purchases WHERE username = $user AND post_id = $post_id"); 
if ($result) {... 

私はただそこにあるかどうかを確認しようとしています1つの.phpテーマページで特定のユーザー名で購入した後、$resultに関係のない操作を実行します。 それは動作しません、私はそれを試して何らかの方法でnullになる。 $wpdb->purchasesを使用するか、特定のファイルなどを使用しないことは何ですか?私も運がないget_resultsget_rowで試しました。

+0

値(つまり、user = '$ user')を引用符で囲む必要があります。あなたが受け取ったエラーは何ですか?私は時には単にページにクエリをエコーし​​、それが動作するまで私はそれを微調整することができるかどうかを確認するSQLサーバー上で直接試してください。 – Silvertiger

答えて

1

これを試してみてください:username

$result = $wpdb->query("SELECT * FROM `".$wpdb->purchases."` WHERE username = '$user' AND post_id = '$post_id';"); 
0

何種類?私はそれが文字列データを格納すると仮定します。だから、変数$userが引用されている必要があります

"SELECT * FROM $wpdb->purchases WHERE username = \"$user\" AND post_id = $post_id"

+0

これをキャッチすることに感謝しますが、クエリのWHERE部分を除外しても、それでも何も出ません:( –

+0

こんにちは。すぐに実行する代わりにクエリをエコーし​​ようとしましたか? = "SELECT * FROM $ wpdb->ここで、username = \" $ user \ "とpost_id = $ post_id"を購入する;
sql = '。$ sql。'
'; die(); 'あなたが持っているクエリが正しい場合、それはエラーなしで実行され、結果はまだ空です。あなたの 'where'-conditionを満たすデータを含んでいない可能性があります。 –

1

私はあきらめ、ちょうどそれが単一のサイトのためだと本当にテーブルプレフィックスを必要としないので、それは常になります

$result = $wpdb->query("SELECT * FROM wp_purchases WHERE username = $user AND post_id = $post_id"); 

を使用しますwp_

1

私はこの回答には遅すぎると知っていますが、同様の問題を抱えている他の人のためにまだ投稿しています。

あなたはWHERE部分を削除しても何も返されないと言っていますが、$ wpdb-> purchases変数をエコーし​​ましたか?テーブルの接頭辞が "wp_"であると仮定して、 "wp_purchases"ではなく "purchases"という文字列を返すだけです。あなたがマルチサイトを持っていれば、$ wpdb->プレフィックス$ table_prefixの代わりに、または$ wpdb-> base_prefixの代わりに使ってみてください。

$wpdb->purchases = $wpdb->prefix . 'purchases'; 
関連する問題