2012-05-06 4 views
1

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のバージョンが参照整合性をまったく強制していないようです。 :-(

上記のコメントに掲示したよう
+2

(ENGINE = InnoDBは)?Hostgatorのではおそらくデフォルトのテーブルを作成します – user570783

+2

外部キー関連のディレクティブをサイレントに受け入れ、無視するMyISAMテーブルをhostgatorで使用しています。代わりにInnoDBを使用するようにテーブルを再構築する必要があります。 –

+0

皆さん、お互いにロック!そのようなオプションの存在について:-)それは動作します。 P.S.私はあなたに緑のチェックマークデアリーを与えることができるように、あなたのうちの1人が応答する必要があります。 :-P – The111

答えて

1

、ここでの正解は、InnoDBのに私のエンジンを強制することです。あなたはエンジンの種類が含まれました

関連する問題