2011-10-27 6 views
0

異なるサーバー上の異なる振る舞い:Plesk Panelを(PHP 5.2.13 &のMySQL 5.0.45-コミュニティ-NT)、 および他の実行中のZend Server 5.5を実行して 1を(PHP 5.2.17 & MySQL 5.1.50-community)。するmysql_query - 私は2台の異なるサーバ持つ

次のように私は両方のサーバー上のMySQL DB内のテーブルを持っている:

 
    CREATE TABLE `test_table` (
     `id` int(11) NOT NULL auto_increment, 
     `num` int(5) NOT NULL, 
     `txt` text NOT NULL, 
     `ste` bigint(5) NOT NULL, 
     PRIMARY KEY (`id`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 

iは、両方のサーバー上で次のPHPコードを実行します。

 
    mysql_query("START TRANSACTION"); 

    if(!mysql_query("insert into test_table(num,txt) values(1,'sd')")) 
    { 
     echo "ERROR OCCURED.
".mysql_error(); mysql_query("ROLLBACK"); exit; } else { echo "Successful insertion"; mysql_query("COMMIT"); exit; }

を私は、クエリが正常に私のPlesk上で実行し得ますサーバー(警告付き - SHOW WARNINGSクエリを実行すると "Field 'ste'にデフォルト値がありませんが、行が挿入され、mysql_queryがtrueを返します)

私のZendサーバーでは、mysq l_queryはfalseを返し、同じエラーが表示されます。行は挿入されません。

警告を無視して挿入する行が必要です。私はこれで一日中過ごし、今はオプションがありません。

私にこれを手伝ってください。ありがとうございます。

答えて

1

Zendサーバーで動作しているMySQLが厳密モードで動作しているように見えます。これは、そうでなければ警告となることが致命的なエラーになることを意味します。

サーバーモードとその変更方法については、hereを参照してください。厳密モードを無効にして、それが役立つかどうかを確認してください。

+0

ありがとうございました。私はSQLモードを ""に設定しても問題ありません。再度、感謝します。 – user1016513

0

IGNOREキーワードを使用できますか? IGNOREに.....を挿入してください。それが良い考えであるかどうかは分かりません。

関連する問題