localhost上のデータベースへの簡単なWebインターフェイスを設計しました。ローカルホスト上でレコードを作成するためにSQLコマンドを送信しようとして、フィールドの1つに無効なFKを使用した場合、PHP mysql_query
はfalseを返し、私のPHPスクリプトはmysql_error()
を返します。 FK私は違反しようとした。MySQL FK違反により、mysql_queryが異なるホスト上で異なる値を返す
私は持っているHostGatorアカウントにプロジェクト全体を移動し、EXACT同じSQLセットアップスクリプトを使用してDBテーブルを作成しました。ここでFKに違反しようとすると、mysql_query
がtrueを返すので、私のPHPスクリプトは要求が成功したかのように動作しますが、もちろんそうではありません。
どちらの場合も、DBに何も挿入されませんが、後者の場合は何らかの理由でmysql_query
がtrueを返しています。後者の場合でも、明らかに私がエラーを起こしたとしても、mysql_error()
は空に見えます。
これを制御するサーバー設定がありますか?
ありがとうございます!
EDIT:
同様の問題が、リモートサーバー上で、私はFKの依存関係を持つレコードを削除することができています。それは、hostgatorのバージョンが参照整合性をまったく強制していないようです。 :-(
上記のコメントに掲示したよう
(ENGINE = InnoDBは)?Hostgatorのではおそらくデフォルトのテーブルを作成します – user570783
外部キー関連のディレクティブをサイレントに受け入れ、無視するMyISAMテーブルをhostgatorで使用しています。代わりにInnoDBを使用するようにテーブルを再構築する必要があります。 –
皆さん、お互いにロック!そのようなオプションの存在について:-)それは動作します。 P.S.私はあなたに緑のチェックマークデアリーを与えることができるように、あなたのうちの1人が応答する必要があります。 :-P – The111