我有一个问题。我似乎无法从MySQL数据库/表中获取最后插入的记录/ id。我想从“tag_id”列中返回最后一个插入的id,但我根本没有得到任何回复。顺便说一句,我正在使用DBO。我尝试了'mysql_insert_id'和'lastInsertId',但没有成功。
我的数据库表如下所示:
表名: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 :(得分:3)
您正在使用无效的Joomla数据库功能,请改用echo $db->insertid();
。
答案 1 :(得分: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;
答案 2 :(得分:0)
它应该通过使用DESC和LIMIT回显新的SQL查询来工作。像这样:
SELECT tag_id FROM gitags_tags ORDER BY tag_id DESC LIMIT 1
答案 3 :(得分:-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.