2017-09-28 2 views
0

データベースの最後のID番号を取得しようとしています。しかし、それは0にすぎません。 私はPDOを学んでいます。誰が私にそれをどうすればいいのか教えてもらえますか?PDOのデータベースの最終IDを表示

if($_SERVER['REQUEST_METHOD']=='POST'){ 
    $sql = "SELECT * FROM tablename"; 
    $stmt = $pdo->prepare($sql); 
    $stmt->execute(); 
    $row = $stmt ->fetch(); 
    $showid = $pdo->lastInsertId(); 
    echo $showid; 
} 
+0

あなたの 'lastInsertId()'には何がありますか? –

+1

ここには何も挿入しないので、挿入IDは使用できません。 –

+1

@MammaMia: "それは0だけを表示しています" –

答えて

4

lastInsertIdは、同じ接続で挿入された行のIDを返します。あなたはその文脈の外で使うことはできません。

のようなものを実行することです最後のIDを取得する最も簡単な方法は、

SELECT max(id) FROM tablename 

IDは、次の挿入すべきアウト動作させるためにこれを使用している場合は、自動インクリメントを使用することを検討してください代わりにあなたのIDの列。

0

lastInsertId()INSERTクエリの後に動作します - あなたが唯一の選択をやっているので、それは常に(1)= 0

だから、どちらかあなたはINSERT文の後に、このコードを実行する、またはあなたが行うことができます文字列を返します。次

$stmt = $db->query("SELECT LAST_INSERT_ID()"); 
$lastId = $stmt->fetchColumn(); 

にここに参照のうえ:PDO get the last ID inserted

訪問このスレッド、あなたは私のコービンが提供するのSampleCodeと、このトピックに関するより多くの情報を見つけることができます。

+0

あなたのリンクを試してみましたが、0しか表示されていませんが、これは2と表示されるはずです。 –

関連する問題