Предупреждение PHP: mysqli_query () ожидает, что параметр 1 будет mysqli, ноль задан - PullRequest
0 голосов
/ 21 мая 2018

Извините за дубликат вопроса, но может кто-нибудь помочь мне решить эту проблему?Я новичок в PHP, и ни одно из решений, похоже, не работает.

Ошибка Screeshot

Вот код:

// Add Signature Image after single post and page
add_filter('the_content','add_signature', 1);
function add_signature($text) {
global $post;
if(($post->post_type == 'post') || ($post->post_type == 'page')){
//$sql_site_d = "select * from orders_discounts";
$sql_site_d = "select * from orders_discounts where url = 'homeworkmaid.com' and status =1";

$rs_results_site_d = mysqli_query($sql_site_d) or die(mysqli_error());
$total_site_d = mysqli_num_rows($rs_results_site_d);
if ($total_site_d > 0){
$row_site_d = mysqli_fetch_array($rs_results_site_d);   

1 Ответ

0 голосов
/ 21 мая 2018

Поскольку вы используете Wordpress, я советую вам использовать их $wpdb глобальный объект, который вы можете использовать, сначала вызвав его глобально: global $wpdb;.Тогда у вас будут функции для использования вроде $wpdb->get_results( 'query', output_type ); вместо функций mysqli. См. WP codex

Но если вы хотите использовать mysqli_ функции, вы все равно можете использовать $wpdb, которые имеют объект mysqli, к которому вы можете получить доступ с помощью: $wpdb->dbh.Это будет ваш объект соединения mysqli, который вам нужен для mysqli_ функций.

Чтобы применить это к вашему коду:

// Add Signature Image after single post and page
add_filter('the_content','add_signature', 1);
function add_signature($text) {
    global $post, $wpdb;
    if(($post->post_type == 'post') || ($post->post_type == 'page')){
        //$sql_site_d = "select * from orders_discounts";
        $sql_site_d = "select * from orders_discounts where url = 'homeworkmaid.com' and status =1";

        $rs_results_site_d = mysqli_query($wpdb->dbh, $sql_site_d) or die(mysqli_error($wpdb->dbh));
        $total_site_d = mysqli_num_rows($rs_results_site_d);
        if ($total_site_d > 0){
            $row_site_d = mysqli_fetch_array($rs_results_site_d);  
            ....
        }
    }
}

Модифицированные строки:

Строка 4: global $post, $wpdb;

Строка 9: $rs_results_site_d = mysqli_query($wpdb->dbh, $sql_site_d) or die(mysqli_error($wpdb->dbh));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...