1

localhost 上のデータベースへの単純な Web インターフェイスを設計しました。localhost で、レコードを作成するために SQL コマンドを送信しようとして、フィールドの 1 つで無効な FK を使用しようとすると、PHPmysql_queryは false を返し、PHP スクリプトmysql_error()はもちろん FK に関する情報を持っている を返します。違反しようとした。

プロジェクト全体を HostGator アカウントに移動し、まったく同じ SQL セットアップ スクリプトを使用して DB テーブルを作成しました。ただし、ここで FK に違反しようとすると、mysql_querytrue が返されるため、PHP スクリプトはリクエストが成功したかのように動作しますが、もちろん成功しませんでした。

どちらの場合も DB には何も挿入されませんが、何らかの理由で後者の場合mysql_queryは true が返されます。また、後者の場合mysql_error()、明らかにエラーを犯したにもかかわらず、空に見えます。

これを制御するサーバー設定はどこかにありますか?

ありがとう!

編集:

同様の問題、リモート サーバーで、FK 依存関係を持つレコードを削除できます。ホストゲーターのバージョンでは、参照整合性がまったく強制されていないようです。:-(

4

1 に答える 1

1

上記のコメントに投稿されているように、ここでの正しい解決策は、エンジンを InnoDB に強制することです。

于 2012-06-04T23:07:18.963 に答える