Intereting Posts
get_stylesheet_directory () в дочерней теме прерывает родительские скрипты Как отложить возможность публикации сообщений? Я хочу связать все события, которые будут проводиться на сегодняшний день, нажав кнопку «Показать все» на главной странице Пользовательские функции для расчета строковых данных Заменить ярлык «виджетов» в бэкэнд Как добавить миниатюру сообщения в сообщениях на главной странице сайта? Страницы подменю удаляют настройки из массива опций при сохранении Что такое «авторы» в WordPress, и есть ли «метабокс-класс» автора в любом месте? Регистрация домена в WordPress Получить количество корневых элементов в классе walker Отображать поля как значения в массиве из внешней базы данных SQL Изменение JS-файла с данными из настроек плагина 3.8 Загрузка мультимедиа и пользовательский метабокс Сохранение изображений из Gravity Forms repeatable Загрузка файлов в виде прикрепленных файлов Иерархия шаблонов для get_header ()

Альтернативные функции для mysql_free_result и mysql_ping в функциях wordpress

что является альтернативной функцией для mysql_free_result и mysql_ping в функциях WordPress, поддерживает ли WordPress все функции, такие как php? Нужно ли освобождать память результата для больших запросов базы данных WordPress?

Solutions Collecting From Web of "Альтернативные функции для mysql_free_result и mysql_ping в функциях wordpress"

У вас есть следующие методы объекта $wpdb :

  • $wpdb->flush() который содержит вызов mysqli_free_result() или mysql_free_result() если не поддерживается.

  • $wpdb->check_connection() который содержит вызов mysqli_ping() или mysql_ping() если не поддерживается.

Конечно, вы можете использовать все свои функции PHP в WordPress.

Вот пример, основанный на самом \wpdb классе:

 // Use the global instance created by WordPress global $wpdb; // Fetch our data with some huge query: $results = $wpdb->get_results( "SELECT * FROM {$wpdb->posts}" ); // ... some data handling here // Let's flush for another huge query. // But that's not actually needed, // since this is already done in the $wpdb->query() call // that's used within the $wpdb->get_results() method. $wpdb->flush(); // Check the connection: if( ! $wpdb->check_connection( $allow_bail = false ) ) { // Let's try to connect again, but there has already been // reconnection retries within the check_connection() method above. // Here we handle the bail manually: // Check the connection: if( ! $wpdb->check_connection( $allow_bail = false ) ) { // Let's try to connect again, but there has already been // reconnect retries within the check_connection() method above. // Here we handle the bail manually: if( ! $wpdb->db_connect( $allow_bail = false ) ) { // Exit with a style: if ( did_action( 'template_redirect' ) ) { die( __( 'No DB connection' ) ); } else { wp_load_translations_early(); $wpdb->bail( sprintf( '<pre>%s<pre>', __( 'No DB connection' ) ) ); } // Just in case: dead_db(); } } } // Fetch another set of data: $results = $wpdb->get_results( "SELECT * FROM {$wpdb->users}" ); 

Обратите внимание, что в большинстве случаев нам не нужно создавать собственные SQL-запросы с помощью $wpdb .

Мы можем пройти очень далеко, просто используя WP_Query , WP_Comment_Query или WP_User_Query . Они могут помочь нам генерировать сложные SQL-запросы, которые выполняются с помощью $wpdb->get_results() или $wpdb->get_col() .

Для случая WP_Query это происходит в самом WP_Query::get_posts() .

Итак, у нас уже есть $wpdb->flush() .