- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到:
Fatal error: Call to a member function num_rows() on a non-object in /home/nbaxy/public_html/application/core/MY_Controller.php on line 137
MY_Controller.php:
<?php
class MY_Controller extends CI_Controller
{
private $dblabg = array();
public function __construct()
{
parent::__construct();
if($this->config->item("use_database") == 1)
{
$this->load->database();
$this->load->model("dashboard/admin");
$this->set_config();
if($this->config->item("module_user_online") == 1 )
{
$this->set_online();
}
}
$this->set_lang();
$this->clean_cache();
if($this->router->fetch_module() == 'dashboard')
{
$this->__dashboard();
}
}
protected function set_lang()
{
if($this->config->item("user_change_lang") == "1")
{
if($this->input->get("lang"))
{
if(in_array($this->input->get("lang"),$this->config->item("langs_available")) || $this->config->item("use_db_language") == '1')
{
$this->config->set_item("lang",$this->input->get("lang"));
$this->session->set_userdata('lang', $this->input->get("lang"));
}
}
else
{
if($this->session->userdata('lang') != '')
{
$this->config->set_item("lang",$this->session->userdata('lang'));
}
else
{
if($this->config->item("language_browser") == '1' )
{
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$temp = $this->admin->getTable('languages',array("iso" => $lang));
if($temp->num_rows()>0 && $this->config->item("language_browser") == '1' && $this->router->fetch_module() != 'dashboard')
{
$d = $temp->row();
$this->config->set_item("lang",$d->language);
}
}
}
}
}
if($this->config->item("use_db_language") == '1')
{
$this->load_db_language($this->config->item("lang"));
}
else
$this->lang->load($this->config->item("lang"),$this->config->item("lang"));
}
public function load_db_language($lang = 'english')
{
$this->db->select ('*');
$this->db->from ('language');
$this->db->where ('language', $lang);
$query = $this->db->get()->result();
foreach ( $query as $row )
{
$return[$row->key] = $row->text;
}
$this->dblabg = $return;
$this->db->select ('*');
$this->db->from ('languages');
$query = $this->db->get()->result();
$return = array();
foreach ( $query as $row )
{
$return[$row->language] = $row->language;
}
$this->config->set_item("langs_available", $return);
unset($query,$return);
}
public function get_label($key)
{
return $this->dblabg[$key];
}
protected function clean_cache()
{
if(exec('echo EXEC') == 'EXEC')
{
if($this->config->item("clean_cache") != '0')
{
exec("find ".getcwd()." -type f -name '*.cache' -mtime +".$this->config->item("clean_cache")." -exec rm {} \;");
}
}
}
protected function set_online()
{
$this->admin->setUsuarioOnline(intval($this->session->userdata('id')));
}
protected function set_config()
{
$config = $this->admin->getTable("settings");
if($config->num_rows() == 0)
{
show_error("No settings founds in your database, you need install this script on clean database",400);
}
foreach ($config->result_array() as $row)
{
if($row['var'] != 'use_database')
{
if($row['var'] == 'langs_available')
{
$this->load->helper('directory');
$langs = directory_map('./application/language');
foreach ($langs as $key => $value) {
$temp[] = $key;
}
$row['value'] = $temp;
}
if($row['var'] == 'theme')
{
if($_GET['skin'])
{
$row['value'] = $_GET['skin'];
}
}
if(!is_array($row['value']))
{
//$row['value'] = str_ireplace('"', "'",$row['value']);
$row['value'] = str_ireplace('\"', '"',$row['value']);
$row['value'] = str_ireplace("\'", "'",$row['value']);
$row['value'] = html_entity_decode($row['value']);
}
$this->config->set_item($row['var'], $row['value']);
if($this->agent->is_mobile())
{
$this->config->set_item("theme", $this->config->item("theme_mobile"));
}
}
}
if($this->agent->is_mobile())
{
if($this->config->item("mobile_redirect") != '')
redirect($this->config->item("mobile_redirect"), 'location', 301);
}
if(is_logged())
{
$this->config->set_item("biography_lang_temp",$this->config->item("biography_lang"));
$this->config->set_item("biography_lang", $this->session->userdata('biography_lang'));
}
$config = Array(
'protocol' => 'smtp',
'smtp_host' => $this->config->item("smtp_host"),
'smtp_port' => $this->config->item("smtp_port"),
'smtp_user' => $this->config->item("smtp_user"), // change it to yours
'smtp_pass' => $this->config->item("smtp_pass"), // change it to yours
'mailtype' => 'html',
'charset' => 'utf-8',
'wordwrap' => TRUE
);
$this->load->library('email',$config);
}
protected function __dashboard()
{
if($this->config->item("use_database") == 0)
{
show_404();
}
if(!is_logged() && $this->router->method != 'login' && $this->router->method != 'logout' )
{
redirect(base_url()."dashboard/login");
}
if($this->session->userdata('is_admin') != 1 && $this->router->method != 'login')
{
//redirect(base_url(),"refresh");
redirect(base_url()."dashboard/login");
}
else{
if($this->session->userdata('username') == 'demo@jodacame.com' && $this->router->method != 'login')
{
if($this->router->method == 'website')
{
$this->config->set_item("lastfm", 'lastfmdemomodeapikey');
}
if($_POST || $this->router->method == 'smtp' || $this->router->method == 'license' || $this->router->method =='users' || $this->router->method =='lyrics' || $this->router->method == 'newsletter' )
{
show_error("Demo Account don't have permission for this action",403);
}
}
// Upgrade
if(file_exists("upgrade/upgrade.sql"))
{
$MD5 = md5_file("upgrade/upgrade.sql");
if($this->config->item("md5updated") != $MD5)
{
$sql = file_get_contents("upgrade/upgrade.sql");
$sqls = explode(";\n",$sql);
foreach ($sqls as $key => $value) {
if($value != '')
{
$this->db->query($value);
//echo $this->db->last_query()."<br>";
}
}
$this->db->query("UPDATE settings SET value = '$MD5' WHERE var='md5updated';");
$this->session->sess_destroy();
//echo $this->db->last_query()."<br>";
redirect(base_url()."dashboard/login/1");
}
}
if(file_exists("install.sql"))
{
$sql = file_get_contents("install.sql");
$sqls = explode(";\n",$sql);
foreach ($sqls as $key => $value) {
if($value != '')
{
$this->db->query($value);
//echo $this->db->last_query()."<br>";
}
}
unlink("install.sql");
redirect(base_url()."dashboard/login/2");
}
// Check install modules
}
}
}
请告诉我,我该如何解决这个问题?
最佳答案
问题是您正在调用“$temp->num_rows()”您的变量 $temp 不是数据库查询的结果集。您正在调用一个不存在的方法。您似乎正在尝试获取表“语言”上的数据行数。在这种情况下,您需要执行 $SQL 查询。
Example:
// this assumes $mysqli is a successfull connection to the table 'languages'
$query = "SELECT COUNT(id) FROM `languages`";
if ($result = $mysqli->query($query)) {
$row_cnt = $result->num_rows; //$row_cnt now equals an integer.
}
*注意:您需要将 $temp->numrows 替换为 if($row_cnt > 0...)
关于php - fatal error : Call to a member function num_rows() on a non-object in/home/*/public_html/application/core/MY_Controller. php 第 137 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27768073/
我在stackoverflow上查过很多类似的问题,比如call.call 1 , call.call 2 ,但我是新人,无法发表任何评论。我希望我能找到关于 JavaScript 解释器如何执行这些
“strace 是一个系统调用跟踪器,即一个调试工具,它打印出另一个进程/程序进行的所有系统调用的跟踪。”如果系统调用递归工作或一个系统调用调用另一个系统调用怎么办。我怎样才能得到这些信息? 可能的解
我的问题很简单:我正在将一个函数传递给其他一些稍后调用的函数(示例回调函数),问题是何时、为何以及最佳做法是什么。 样本:我有 xxx() 函数,我必须传递它,如下面的 window.onload 事
我是 Java 新手,我正在尝试学习 ScheduledExecutorService 接口(interface)。我在网上看到了下面的代码。 我没有看到任何对 Callable.call() 方法的
这是我的调用过程: System.out.println
在 typescript 中,我有一个 DataAccess 类,以便所有 Ajax 调用都通过单个对象进行路由,以节省应用程序中许多地方的代码重复。 在使用这种方法时,我需要使用回调将响应返回到调用
如何使用模拟来计算通过 call 或 apply 进行的函数调用 // mylib.js module.exports = { requestInfo: function(model, id) {
每次我尝试roxygenize 一个包我都会得到这个错误: Error: is.call(call) is not TRUE traceback() 的结果: 11: stop(sprintf(nge
这里如果我有一个记录“调用我的函数”的函数 function myFunction() { console.log('called my function') } Function.prototy
在 Javascript 中,Function.call() 可以在给定 this 值和零个或多个参数的情况下调用 Function。 Function.call 本身就是一个函数。所以理论上,Fun
这个问题已经有答案了: "object is not a function" when saving function.call to a variable (3 个回答) a is a functi
在调用 UITableView 上的 reloadData 方法后,我曾多次遇到此问题,但我不明白为什么? 这是一个问题,因为如果更新 TableView 的数据,tableview将不必要地查询不存
我继承了大约 400 行写得非常奇怪的 Fortran 77 代码,我正在尝试逐步分析它以使其在我的脑海中清晰。 无论如何,我有一个类似 header 的文件(实际上是一个 .h,但其中的代码是 fo
这是我的代码 class AuthAction(callbackUri:String) extends ActionBuilder[UserRequest] with ActionRefiner[
我继承了大约 400 行写得非常奇怪的 Fortran 77 代码,我正在尝试逐步分析它以使其在我的脑海中清晰。 无论如何,我有一个类似 header 的文件(实际上是一个 .h,但其中的代码是 fo
我知道这个问题之前在这里被问过 iOS 6 shouldAutorotate: is NOT being called .但我的情况有点不同。 最初,在应用程序启动时,我加载了一个 viewContr
我是 headfirst 设计模式的读者,我注意到了这一点。 “好莱坞原则,别叫我们,我们叫你” 这意味着高级组件告诉低级组件“不要调用我们,我们调用你” High-Level Component 是
这个问题在这里已经有了答案: Why does passing variables to subprocess.Popen not work despite passing a list of ar
我刚找到一个覆盖 OnPaintBackground 的表单。奇怪的是它从来没有被调用过!就像,完全一样。为什么是这样?表单被刷新、移动、调整大小等等,所以它应该一些重新绘制,对吧? 最佳答案 是否设
调用函数的方式 考虑这个简单的函数: function my(p) { console.log(p) } 我可以这样调用它: my("Hello"); 也像这样: my.call(this, "Hel
我是一名优秀的程序员,十分优秀!