PHP警告:mysqli_query()期望参数1为mysqli,给定null

时间:2018-05-21 16:16:08

标签: php mysqli

很抱歉重复的问题,但有人可以帮我解决这个问题吗?我是一个PHP新手,没有一个解决方案似乎工作。

Error 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 :(得分:0)

由于您使用的是Wordpress,我建议您使用他们可以使用的$wpdb全局对象,首先全局调用它:global $wpdb;。然后你将使用类似$wpdb->get_results( 'query', output_type );而不是mysqli函数的函数。 See the 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));