私は私の外部ページでwpdb
クラスを使いたいのですが、ワードプレスとは関係ありません。
私はphpファイルに以下を含めることを試みました:
// include wordpress functions
include( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
require_wp_db();
global $wpdb;
今私は$wpdb->query
を使って問い合わせをしました
$product_info_query = $wpdb->query("select p.products_id, p.products_type, p.img_display, p.products_sku, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_last_modified, p.products_date_available, p.manufacturers_id, gp.likes from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_GLOBAL_PRODUCTS . " gp where p.products_status = '1' and p.products_id = '" . (int)$_GET['products_id'] . "' and pd.products_id = p.products_id and gp.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
$product_info = mysql_fetch_array($product_info_query);
しかし、それはうまくいきません。それは警告を返しました:
Warning: mysql_fetch_array() expects parameter 1 to be resource
問題に見えるのは?どのようにこれを修正し、おそらくwpdb
クラスをwordpressの外部でクエリを実行する上で正しく使用するのですか?
wpdb
と mysql_fetch_array
を混在させることはできません。それらは互換性がありません。 wpdb
メソッドに加えて、while
、foreach
、およびfor
などのPHP関数を使用する必要があります。 wpdb
は、PHPのmysql関数が使用する参照を返しません。それはオブジェクトと配列、あるいは時には文字列を返します。
あなたの場合は、しかし、データベースの部分は完了です。結果セットをforeach
したいだけです。
foreach ($products as $op) {
// do stuff
}