PHP在非对象错误时调用成员函数prepare()

编程入门 行业动态 更新时间:2024-10-26 21:27:34
本文介绍了PHP在非对象错误时调用成员函数prepare()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好,我需要不断解决此错误的帮助.它可以在脚本中的其他所有地方正常工作,除非我尝试在此函数中调用它.

Hi i need some help with this error I keep getting. It works fine everywhere else in the script except when I try to call it within this one function.

我正在调用的函数是:getTotalServers

The function I am calling is: getTotalServers

错误:

Fatal error: Call to a member function prepare() on a non-object in C:\xampp2\htdocs\runeloft\ss_sources\util.php on line 208

调用此函数:

function display_table($online, $where, $num_servers = null){ global $aaaa, $bbbb; $num_per_page = 30; $page = 1; // how many records per page $size = 10; // we get the current page from $_GET if (isset($_GET['page'])){ $page = (int) $_GET['page']; } $aaaa = getTotalServers(1, $num_servers);; $bbbb = $page; // create the pagination class $pagination = new Pagination(); $pagination->setLink("?action=status&page=%s"); $pagination->setPage($page); $pagination->setSize($size); $pagination->setTotalRecords($num_servers); global $g_headers; $g_headers = array( 'name' => 'Server Name', 'ip' => 'IP', 'port' => 'Port', 'uptime' => 'Uptime', 'online' => 'Status', ); $start = isset($_GET['start']) ? $_GET['start'] : 0; mysql_con(); global $g_mysqli; $start = $g_mysqli->real_escape_string($start); if(isset($_GET['sort']) && isset($g_headers[$_GET['sort']])){ $order_by = 'ORDER BY `'.$g_mysqli->real_escape_string($_GET['sort']).'` '.(isset($_GET['desc']) ? 'DESC' : 'ASC'); }else{ //default sort $order_by = 'ORDER BY `uptime` DESC, `time` ASC'; } //$order_by .= " LIMIT $start, $num_per_page"; $order_by .= " " . $pagination->getLimitSql(); if($start == 0 && $online == 1 && !isset($_GET['sort'])) echoTable('Spons', "`sponsored` != '0'", "ORDER BY `sponsored` DESC, RAND() LIMIT 10"); echoTable('Other', $where, $order_by, $online, $start, $num_per_page, $num_servers); close_mysql(); }

被调用函数:

function getTotalServers($online, $where, $num_servers = null){ $where = "`online` = '$online' AND `sponsored` = '0'"; if($num_servers == null){ global $g_mysqli; $stmt = $g_mysqli->prepare("SELECT COUNT(*) FROM `servers` WHERE ".$where) or debug($g_mysqli->error); $stmt->execute(); // bind result variables $stmt->bind_result($num_servers); $stmt->fetch(); $stmt->close(); } return $num_servers;

}

感谢您的帮助.

推荐答案

对象$g_mysqli应该在之前被初始化.

在您的情况下,您将在许多地方创建全局变量$g_mysqli,但每次在初始化之前它都是一个NULL对象.

In your case you are creating global variable $g_mysqli at many places but every time it is a NULL object before you initialize it.

所以您不能在null对象内调用任何函数.

So you can't call any function within null object.

更多推荐

PHP在非对象错误时调用成员函数prepare()

本文发布于:2023-11-27 19:34:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1639327.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:时调   函数   对象   成员   错误

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!