2012-09-19 265 views
0

我嘗試這樣做:無法獲得mysql_insert_id()工作

$cid = mysql_insert_id($this->result); 
$this->result = "<div class='alert alert-success'>" . sprintf(_('Successfully added user id <b>%s</b> to the database.'), $cid) . "</div>"; 

但我只得到這個錯誤:

警告:mysql_insert_id():提供的參數不是一個有效的MySQL-Link的資源在

這是整個功能(I加入此$ CID = mysql_insert_id($這個 - >結果);希望檢索插入的數據的ID):

private function adduser() { 

    if (!empty($this->error)) return false; 

    $params = array(
     ':user_level' => parent::getOption('default-level'), 
     ':name'  => $this->name, 
     ':email'  => $this->email, 
     ':username' => $this->username, 
     ':password' => parent::hashPassword($this->password) 
    ); 

    parent::query("INSERT INTO `login_users` (`user_level`, `name`, `email`, `username`, `password`) 
        VALUES (:user_level, :name, :email, :username, :password);", $params); 

    $shortcodes = array(
     'site_address' => SITE_PATH, 
     'full_name'  => $this->name, 
     'username'  => $this->username, 
     'email'   => $this->email, 
     'password'  => $this->password 
    ); 

    $subj = parent::getOption('email-add-user-subj'); 
    $msg = parent::getOption('email-add-user-msg'); 

    if(!parent::sendEmail($this->email, $subj, $msg, $shortcodes)) 
     $this->error = _('ERROR. Mail not sent'); 
    $cid = mysql_insert_id($this->result); 
    $this->result = "<div class='alert alert-success'>" . sprintf(_('Successfully added user <b>%s</b> to the database. Credentials sent to user.'), $cid) . "</div>"; 

} 

這是連接到數據庫:

<?php 
$host = "xxx"; 
$dbName = "xxx"; 
$dbUser = "xxx"; 
$dbPass = "xxx"; 
?> 
+0

我們需要看到幾前述線 - 尤其是在最後設置$這個 - >結果爲文本 – BugFinder

+0

哪裏是你的查詢和指定的結果?請更新一些代碼行。 首先,使用'this-> result'作爲結果標識符,然後使用它來設置一個字符串似乎不正確。 – bartvanraaij

回答

2

mysql_insert_id()需要資源的鏈接,即數據庫句柄,作爲參數不是查詢結果。 $this->result包含什麼?

+0

更新了我的文章 – Dreni

1

檢查Manual

參數mysql_insert_id是Link_Identifier。但我想你是通過結果。嘗試

$cid = mysql_insert_id(); 

或者您的$ this-> result必須是由mysql_connect()返回的連接標識符。

+0

導致:警告:mysql_insert_id()[function.mysql-insert-id]:無法建立到服務器的鏈接 – Dreni

0

你已經在使用PDO,切換到:

$cid = self::$dbh->lastInsertId(); // PDO for mysql_insert_id 
+0

我收到此錯誤:致命錯誤:調用未定義的方法Generic :: lastInsertId () – Dreni

+0

這意味着你的父母沒有這個功能。你不是在使用PDO嗎? –

+0

是的,那麼如何將這個功能添加到我的父母? – Dreni