mysql_query - ander gedrag op verschillende servers

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).

Ik heb als volgt een tabel in MySQL DB op beide servers:

    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

Ik voer de volgende php-code uit op beide servers:

    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; }

ik krijg de vraag met succes uitgevoerd op mijn Plesk-server (met waarschuwingen - indien uitgevoerd vraag SHOW-WAARSCHUWINGEN, krijg ik "Veld 'ste' heeft geen standaardwaarde", maar de rij wordt ingevoegd en mysql_query levert waar op)

maar op mijn Zend-server geeft mysql_query false terug en wordt dezelfde fout weergegeven. de rij is niet geplaatst.

Ik wil dat de rij wordt ingevoerd zonder waarschuwingen te negeren. ik besteed hier een hele dag aan en heb nu geen opties meer.

help me hier alstublieft mee. heel erg bedankt.

0

2 antwoord

Het lijkt erop dat de MySQL die op uw Zend-server wordt uitgevoerd, in Strict-modus werkt. Dit betekent dat wat anders een waarschuwing zou zijn, een fatale fout wordt.

Zie hier voor informatie over servermodi en hoe om ze te veranderen, probeer dan de Strict-modus uit te schakelen en kijk of dat helpt.

1
toegevoegd
Heel erg bedankt voor je antwoord. ik stel de sql-modus in op "" en het werkt goed. nogmaals bedankt.
toegevoegd de auteur user1016513, de bron

kan je het IGNORE-sleutelwoord gebruiken? Voeg IGNORE in ..... Niet zeker of het een goed idee is

0
toegevoegd