2013-11-28 231 views
0

獲得最後插入的記錄/ ID我有一個問題。我似乎無法從我的MySQL數據庫/表中獲取最後插入的記錄/ ID。我想從'tag_id'列中返回最後一個插入的id,但我沒有收到任何迴應。順便說一句,我正在使用DBO。我嘗試了'mysql_insert_id'和'lastInsertId',但沒有成功。我似乎無法從MySQL

我的數據庫表看起來像這樣:

表名:gitags_tags

tag_id | name 
----------+--------- 
    437 | 2011 
    438 | 2012 
    439 | 2013 
    440 | new 

我的PHP看起來像這樣(在這種情況下,我想回到 '440'):

/* 
* Insert the new tagname in the database in the table 'gitags_tags' 
*/ 
$query = "INSERT INTO gitags_tags (`name`) VALUES ('".$new_tagname."')"; 
$db->setQuery($query); 

if (!$db->query()) { 
    echo "Something went wrong \n"; 
    echo $query . "\n"; 
    exit; 
} 

// Neither of these two work ... 
echo mysql_insert_id(); 
echo $db->lastInsertId('tag_id'); 

任何幫助深表感謝。

+0

它必須是一個Joomla的問題。請[*閱讀此*](http://www.webmasterworld.com/php/3600870.htm)。 –

+0

如果你想從數據庫中獲取數據,請出示你'select'查詢,而不是你的'insert'查詢。使用Joomla標準閱讀關於編碼數據庫查詢的Joomla文檔! http://docs.joomla.org/Selecting_data_using_JDatabase .... ....和http://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase – Lodder

+0

試試這個的var_dump($ DB-> mysql_insert_id()); –

回答

1

得到最後插入的記錄,你可以這樣做:

$db = JFactory::getDbo(); 
$query = $db->getQuery(true); 

$query->select($db->quoteName('tag_id')) 
->from($db->quoteName('gitags_tags')) 
->order($db->quoteName('tag_id') . ' DESC'); 

$db->setQuery($query); 
$result = $db->loadResult(); 

echo $result; 
-1

確保TAG_ID已設置主鍵和增量爲好。

/* 
* Insert the new tagname in the database in the table 'gitags_tags' 
*/ 
$query = "INSERT INTO gitags_tags (`name`) VALUES ('".$new_tagname."')"; 
$db->setQuery($query); 

echo mysql_insert_id(); 
echo $db->lastInsertId('tag_id'); 

//Use select query and echo this record with this tag_id. 
0

它應該通過使用DESC和LIMIT回顯新的SQL查詢來工作。就像這樣:

SELECT tag_id FROM gitags_tags ORDER BY tag_id DESC LIMIT 1 
3

您使用的是無效的Joomla數據庫功能,使用echo $db->insertid();代替。