0

質問があります。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');

どんな助けでも大歓迎です。

4

4 に答える 4

0

DESC と LIMIT を使用して新しい SQL クエリをエコーすることで機能するはずです。このような:

SELECT tag_id FROM gitags_tags ORDER BY tag_id  DESC LIMIT 1
于 2013-11-28T11:10:45.353 に答える
-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.
于 2013-11-28T11:07:58.977 に答える