私は現在ASPとMySQLを使用している大きなWebプロジェクトに取り組んでいます。 複数のテーブルに挿入するとき、私はlast_update_ID()
を使用していましたが、いくつかの調査の後で、そのSQL文が安全でないことがわかりました。mySQLの "last_update_ID()"の代替手段はありますか?
So.問題: 異なるインターネット接続を持つ2つの異なるコンピュータを使用しています。
両方のコンピュータが、現在構築しているシステムにログオンしています。私はconnection_id()とlast_update_idを出力するページを作った。
いずれかのコンピュータでテーブルを更新すると、もう一方のテーブルもlast_update_IDを取得します。 両方のコンピュータのconnection_IDは同じです。
これを回避するにはどうすればよいですか?
最初のINSERTの後にselect文を実行したくない場合(必要でない場合)は不要です。挿入した行を検索して、その行の正しいIDを取得します。
私は使用しているサーバーではないため、データベースを大幅に変更することはできません。
ウェブページが同じloginName &パスワードを使用してデータベースに接続するため、この問題が発生していると思いますか?
最終更新IDを取得する他の方法はありますか?それは完全に安全です。 私はASPページの最後にすべての接続を閉じます。 connection_IDは変更されません。
接続IDは、サーバー上の別のWebページを開いても、数分間です。
実際に私は問題があると思う..私は2つの異なるコンピュータと2つの異なるインターネット接続を使用し、私は更新またはテーブルに挿入する他のコンピュータのwhemからlast_update_ID()を取得することができます。 – Matte
その後、grahamparksからの回答があなたのケースに当てはまります。永続接続/接続プーリングを使用しています。ただし、エンドツーエンドでのみ使用されます。あなたはその主題を読むことができます。 – ontrack