2011-08-11 90 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

由於某些原因,這並沒有幫助。 –