0

私はこれとまったく同じ問題を抱えていますが、その答えは古く、他の場所で mysql_insert_id() の使用が減価償却されており、新しいコードでは避ける必要があることを読みました。

データベースは InnoDB で、このテーブルの主キーは auto_increment に設定されています。

ここで私が間違っていることを誰かが見ることができますか? 私は初心者であり、独学で学習していることに注意してください。申し訳ありませんが、これは明白です。

$query  = "INSERT INTO VENUES (province,city,venue)" . "VALUES " . "('$province','$city','$venue')";
$result = $db->query($query);
if ($result) {
    echo "$result row(s) sucessfully inserted.<br/>";
} else {
    echo "$db->error<br/>";
}

$result = $db->query("select last_insert_id()");
echo $result->num_rows //returns 1
echo $result; //nothing beyond this line happens

更新: mysqli を使用しています。

4

1 に答える 1

6

を使用する場合、最後に挿入された ID を取得する正しい方法mysql_*は、 を呼び出すことmysql_insert_id()です。

あなたが読んでいるものは部分的に正しいです -mysql_insert_id廃止される過程にありますが、それはその機能だけではありません. すべてのmysql_*機能は非推奨です。代わりに、PDO またはmysqli_*.

コード スニペットでは、使用しているデータベース アクセス ライブラリが不明です。呼び出しがオブジェクトにバインドされているように見えるため、PDO または mysqli を使用している可能性があります。

PDO の場合は、 を使用できますPDO::lastInsertId
にはmysqli、 を使用しますmysqli->insert_id

于 2013-09-04T06:54:00.090 に答える