0

PHPには、テキストエリアとファイルのアップロードを含むフォームがあります。mysqlには、名前、サイズなどのデータを含むアップロードされた各ファイルの行を含むテーブル1があり、テキスト領域に入力されたデータを含むテーブル2と、アップロードされたファイルのIDを含む列があります。

mysql_insert_id表1に最後に挿入された行のID(アップロードされたファイルのID)を取得するために使用しています。次に、そのIDを表2に挿入します。

異なるユーザーによって同時に複数のアップロードが行われると仮定すると、mysql_insert_id毎回適切なIDが返されますか?2人のユーザーが正確な時間にアップロードした場合はどうなりますか..またはタイムアウトがあります..新しく作成されたIDを2つのテーブルに同時に挿入するより良い方法があるかどうかを尋ねていると思いますか?

4

3 に答える 3

1

挿入が行われたセッションの挿入された行のIDを返します。そうです、あなたはそれをうまくやっています。

于 2012-09-22T18:26:09.703 に答える
1

php docs(mysqli :: $ insert_idAUTO_INCREMENT )によると、last_insert_id関数は、属性を持つ列を持つテーブルに対するクエリによって生成されたIDを返します。これは、使用している特定のリソースのことです。他のリソースは互いに影響しません

于 2012-09-22T18:27:15.063 に答える
1

もちろん、テーブルの主キーに自動インクリメントがある場合、mysqlは同じ値を2倍にすることはできません。

于 2012-09-22T18:27:32.103 に答える