mysql_query - 異なるサーバで異なる動作

I have 2 different servers: one running Plesk Panel (PHP 5.2.13 & MySQL 5.0.45-community-nt), and the other running Zend Server 5.5 (PHP 5.2.17 & MySQL 5.1.50-community).

私は次のように両方のサーバーで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

私は両方のサーバー上で次の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クエリを実行すると "フィールド 'ste'にデフォルト値はありませんが、行が挿入され、mysql_queryがtrueを返す)

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

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

これについて私を助けてください。ありがとうございます。

0

2 答え

あなたのZendサーバー上で実行されているMySQLがStrict Modeで動作しているように見えます。これは、そうでなければ警告となることが致命的なエラーになることを意味します。

サーバーモードとその方法については、こちらを参照してください。それらを変更するには、Strict Modeを無効にして、それが役立つかどうか確認してください。

1
追加された
ご返信ありがとうございます。私はSQLモードを ""に設定しても問題ありません。再度、感謝します。
追加された 著者 user1016513,

あなたはIGNOREキーワードを使用できますか? IGNOREに.....を挿入してください

0
追加された