2011-08-11 64 views
0

我试着在脚本中运行查询并收到此消息。任何人都知道为什么以及如何解决它。成员函数行

致命错误:调用一个成员函数行()一个非对象

$query_str = "SELECT MAX(userID) FROM kowmanager_users"; 
$this->db->query($query_str); 

$row = $query->row(); 
$userID = $row->userID; 

编辑:

我发现语法此位置:http://codeigniter.com/user_guide/database/active_record.html#select

并想出了这是为我的需要,但是当我运行脚本时,它给了我你的SQL语法错误;检查对应于你的MySQL服务器版本在线路附近使用“对象”正确的语法手册1

文件名:/home/xtremer/public_html/kowmanager/models/user_model.php

$this->db->select_max('userID'); 
$query_str = $this->db->get('kowmanager_users'); 
$rows = $this->db->query($query_str); 
$userID = $rows->userID; 
$userID = $userID + 1; 

编辑2:

由于某种原因,更新没有运行。

$query_str = "INSERT INTO kowmanager_users (username, password, password2, email, firstName, lastName, accessLevelID) VALUES (?, ?, ?, ?, ?, ?, ?)"; 
    $this->db->query($query_str, array($username, $password[0], $password[1], $email, $firstName, $lastName, '1',)); 

    $id = $this->db->insert_id(); 

    $this->db->select_max('userID'); 
    $query = $this->db->get('kowmanager_users'); 
    $row = $query->row(); 
    $userID = $row->userID; 
    echo $userID; 
    echo "<br>"; 
    $userID = $userID + 1; 
    echo $userID; 

    $data = array('userID' => $userID); 

    $where = "id = '".$id."'"; 

    $str = $this->db->update_string('kowmanager_users', $data, $where); 

编辑:这是我的整个页面代码: http://pastebin.com/7sJt7V09

+1

什么是'$ query'? – Brad

+0

它只会返回查询中的最大用户ID,所以它只会是10001这样的5位数 –

回答

1

首先应努力已经比较是这样的:

$query_str = "SELECT MAX(userID) FROM kowmanager_users"; 
$q = $this->db->query($query_str); 
$row = $q->row(); 
$userID = $row->userID; 

你的第二次尝试应该请改为:

$this->db->select_max('userID'); 
$q = $this->db->get('kowmanager_users'); 
$row = $q->row(); 
$userID = $row->userID; 

如果你正在返回多行,那么你会做这样的事情:

$this->db->select('userID'); 
$q = $this->db->get('kowmanager_users'); 
$results = $q->result(); 
foreach($results as $row) 
{ 
echo $row->userID; 
} 
+0

唯一的问题是我遇到了更新的问题。检查我的文章的最后编辑。 –

+1

为更新,我认为你只创建了字符串。您仍然需要将该查询字符串放入实际查询中:'$ my_update = $ this-> db-> query($ str);' – permawash

1

TRY:

$row = $this->db->query->row(); 
+0

由于某些原因,这并没有帮助。 –