web-dev-qa-db-ja.com

WPDBクラスを使う

私は私の外部ページで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の外部でクエリを実行する上で正しく使用するのですか?

1
Ken

wpdbmysql_fetch_array を混在させることはできません。それらは互換性がありません。 wpdb メソッドに加えて、whileforeach、およびforなどのPHP関数を使用する必要があります。 wpdbは、PHPのmysql関数が使用する参照を返しません。それはオブジェクトと配列、あるいは時には文字列を返します。

あなたの場合は、しかし、データベースの部分は完了です。結果セットをforeachしたいだけです。

foreach ($products as $op) {
    // do stuff
}
3
s_ha_dum