1

このプログラムでは、ユーザーが写真を MYSQL にアップロードしています。Photoid は自動インクリメントされます。ユーザーがフォームを送信すると、以下のコードがアクションを実行します。写真がアップロードされたばかりのページにユーザーをリダイレクトしたい。彼を にリダイレクトするにはどうすればよいですかphotopage.php?photoid=???

 $addaphoto_query = "INSERT INTO `photosite`.`photos` (id, photoid, title, description) VALUES ('$id', '', '$title', '$description')";

    if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
         header('Location: photopage.php?photoid=???');
    }
4

2 に答える 2

0

mysqli_insert_id()を使用して、挿入したばかりの ID を取得できます。

    $addaphoto_query = "INSERT INTO `photosite`.`photos` (id, photoid, title, description) VALUES      ('$id', '', '$title', '$description')";

    if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
         header('Location: photopage.php?photoid='.mysqli_insert_id().');
    }
于 2013-04-02T20:37:41.047 に答える
0

PHP 関数を使用する必要がありますmysqli_insert_id()。これにより、写真付き ID が取得されます。

if ($run_addaphoto = mysqli_query($connect, $addaphoto_query){
    header('Location: photopage.php?photoid=' . mysqli_insert_id());
}

と疑問に思っている場合は、mysqli_insert_id()どれだけトラフィックが発生しても安全です。このSOの質問の詳細を読んでください。

MySQLのマニュアルより

LAST_INSERT_ID() の場合、最後に生成された ID が接続ごとにサーバーに保持されます。別のクライアントによって変更されることはありません。別の AUTO_INCREMENT カラムを非マジック値 (つまり、NULL でも 0 でもない値) で更新しても、変更されません。複数のクライアントから LAST_INSERT_ID() および AUTO_INCREMENT 列を同時に使用することは完全に有効です。各クライアントは、クライアントが最後に実行したステートメントの最後に挿入された ID を受け取ります。

于 2013-04-02T20:37:00.443 に答える