Преобразование mysql_query в $ wpdb-> get_results

Afetr обновление php на сервере у меня есть некоторые проблемы с mysql_query. В вашем коде есть 2 функции, которые устарели в текущей версии PHP: mysql_fetch_array () mysql_query ()

global $table_prefix, $wpdb; // caching database query per comment $ck_cache = array('ck_ips'=>"", 'ck_comment_id'=>0, 'ck_rating_up'=>0, 'ck_rating_down'=>0); $table_name = $table_prefix . "comment_rating"; if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { temckrating_install(); } function temckrating_install() //Install the needed SQl entries. { global $table_prefix, $wpdb; $table_name = $table_prefix . "comment_rating"; $sql = 'DROP TABLE `' . $table_name . '`'; // drop the existing table mysql_query($sql); $sql = 'CREATE TABLE `' . $table_name . '` (' //Add table . ' `ck_comment_id` BIGINT(20) NOT NULL, ' . ' `ck_ips` text NOT NULL, ' . ' `ck_rating_up` INT,' . ' `ck_rating_down` INT' . ' )' . ' ENGINE = myisam;'; mysql_query($sql); $sql = 'ALTER TABLE `' . $table_name . '` ADD INDEX (`ck_comment_id`);'; // add index mysql_query($sql); // echo "comment_rating tables created"; $ck_result = mysql_query('SELECT comment_ID FROM ' . $table_prefix . 'comments'); //Put all IDs in our new table while($ck_row = mysql_fetch_array($ck_result, MYSQL_ASSOC)) //Wee loop { mysql_query("INSERT INTO $table_name (ck_comment_id, ck_ips, ck_rating_up, ck_rating_down) VALUES ('" . $ck_row['comment_ID'] . "', '', 0, 0)"); } } function temckrating_comment_posted($ck_comment_id) //When comment posted this executes { global $table_prefix, $wpdb; $table_name = $table_prefix . "comment_rating"; mysql_query("INSERT INTO $table_name (ck_comment_id, ck_ips, ck_rating_up, ck_rating_down) VALUES ('" . $ck_comment_id . "', '" . getenv("REMOTE_ADDR") . "', 0, 0)"); //Adds the new comment ID into our made table, with the users IP } // cache DB results to prevent multiple access to DB function temckrating_get_rating($comment_id) { global $ck_cache, $table_prefix, $wpdb; // return it if the value is in the cache if ($comment_id == $ck_cache['ck_comment_id']) return; $table_name = $table_prefix . "comment_rating"; $ck_sql = "SELECT ck_ips, ck_rating_up, ck_rating_down FROM `$table_name` WHERE ck_comment_id = $comment_id"; $ck_result = mysql_query($ck_sql); $ck_cache['ck_comment_id'] = $comment_id; if(!$ck_result) { $ck_cache['ck_ips'] = ''; $ck_cache['ck_rating_up'] = 0; $ck_cache['ck_rating_down'] = 0; mysql_query("INSERT INTO $table_name (ck_comment_id, ck_ips, ck_rating_up, ck_rating_down) VALUES ('" . $comment_id . "', '', 0, 0)"); } else if(!$ck_row = mysql_fetch_array($ck_result, MYSQL_ASSOC)) { $ck_cache['ck_ips'] = ''; $ck_cache['ck_rating_up'] = 0; $ck_cache['ck_rating_down'] = 0; mysql_query("INSERT INTO $table_name (ck_comment_id, ck_ips, ck_rating_up, ck_rating_down) VALUES ('" . $comment_id . "', '', 0, 0)"); } else { $ck_cache['ck_ips'] = $ck_row['ck_ips']; $ck_cache['ck_rating_up'] = $ck_row['ck_rating_up']; $ck_cache['ck_rating_down'] = $ck_row['ck_rating_down']; } } 

Я пытаюсь заменить mysql_query на $ wpdb-> get_results, но все равно получаю ошибки

mysql_query return ресурс. Таким образом, вы получаете эту ошибку, используя $wpdb->get_results .

mysql_query() returns TRUE при успешном mysql_query() returns TRUE или FALSE при error . mysql_fetch_array() ресурс результата должен быть передан mysql_fetch_array() и другим функциям для обработки таблиц результатов для доступа к возвращенным данным.

Вы замените 2 функции mysql_fetch_array() и экземпляр mysql_query из $ wpdb-> get_results. Вы определяете тип возврата – ARRAY_A, ARRAY_N , OBJECT ,OBJECT_K

 global $wpdb; $ck_sql = $wpdb->get_results("SELECT ck_ips, ck_rating_up, ck_rating_down FROM `$table_name` WHERE ck_comment_id = $comment_id", ARRAY_A); foreach($ck_sql as $row) { echo $row['ck_ips'] . ' ' . $row['ck_rating_up']. ' ' . $row['ck_rating_down ']; }