Ständige MySQL Errors

Gesperrt
DeadManWalking
Beiträge: 7
Registriert: Di 4. Mai 2010, 12:00
Kontaktdaten:

Ständige MySQL Errors

Beitrag von DeadManWalking » Di 4. Mai 2010, 12:29

Hi all,

ich kämpfe ständig mit DB-Exceptions, obwohl der Installer ohne Probs (nach seiner Aussage) durchlief.
Habe bereits das Install-ZIP mehrfach runtergeladen.

Mein Testsystem:
Contenido 4.8.12
Apache 2.2.13 Windows
MySQL 5.0.77
PHP 5.2.11

Ich habe jeweils eine Beispielseite und auch eine ganz leere Seite (ohne Mandanten) getestet.
Z.B. bei der leeren Seite beim Versuch, einen neuen Nutzer anzulegen oder auch das Standardpwd zu ändern,
kommen:

Code: Alles auswählen

[04-May-2010 09:08:57] /contenido/contenido/main.php?area=user&frame=1&contenido=2078f51afadb9d70ff046b674a58fc0d MySQL error 1364: Field 'itemtype' doesn't have a default value
INSERT INTO con_properties (idproperty) VALUES (13)

[04-May-2010 09:09:35] /contenido/contenido/main.php?contenido=2078f51afadb9d70ff046b674a58fc0d MySQL error 1364: Field 'password' doesn't have a default value
            INSERT INTO
               `con_phplib_auth_user_md5`
            SET
               username = 'Redakteur',
               user_id = '464fd71683200c9ddf8f35e5aff2982a',
               realname = 'Paul',
               email = 'xxx@web.de',
               telephone = '',
               address_street = '',
               address_city = '',
               address_country = '',
               address_zip = '',
               wysi = '0',
               valid_from = '',
               valid_to = '',
               perms = ''

[04-May-2010 10:57:44] /contenido/contenido/main.php?area=user&frame=1&contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1364: Field 'itemtype' doesn't have a default value
INSERT INTO con_properties (idproperty) VALUES (14)

[04-May-2010 10:58:02] /contenido/contenido/main.php?contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1292: Incorrect date value: '' for column 'valid_from' at row 1
	        UPDATE
	           `con_phplib_auth_user_md5`
	        SET
	           realname = 'Systemadministrator',
	           email = 'sysadmin@IhreSite.de',
	           telephone = '',
	           address_street = '',
	           address_city = '',
	           address_country = '',
	           address_zip = '',
	           wysi = '1',
	           valid_from = '',
	           valid_to = '',
	           perms = 'sysadmin'
	        WHERE
	           user_id = '48a365b4ce1e322a55ae9017f3daf0c0'
Beim Anlegen hat die DB Recht: wo ist das PWD in der Query?
Beim ändern des Standard-PWD ist es merkwürdiger, laut phpMyAdmin ist bei valid_from NULL Standard und erlaubt.


Das Anlegen eines ersten Mandanten führt zu (das entsprechende Verzeichnis wird aber im FS angelegt):

Code: Alles auswählen

[04-May-2010 11:22:07] /contenido/contenido/main.php?area=con&frame=2&contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND (a.idlang = '0' OR a.idlang = '0') 
        AND b.idart = a.idart' at line 3
SELECT b.idcat, a.idart, idlang FROM con_art_lang AS a,
							  con_cat_art AS b
		WHERE b.idcat IN () AND (a.idlang = '0' OR a.idlang = '0') 
        AND b.idart = a.idart

[04-May-2010 11:22:07] /contenido/contenido/main.php?area=con&frame=2&contenido=2dbd53a4e95c7879cbf49de7c6281e00 next_record called with no query pending.

[04-May-2010 11:22:07] /contenido/contenido/main.php?area=con&frame=2&contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY b.idlang ASC, c.idtree ASC' at line 1
SELECT DISTINCT a.idcat, a.parentid, a.preid, a.postid, a.parentid, b.name, b.idlang, b.visible, b.public, c.level, d.idtpl FROM con_cat AS a LEFT JOIN con_cat_lang AS b ON a.idcat = b.idcat LEFT JOIN con_cat_tree AS c ON (a.idcat = c.idcat AND b.idcat = c.idcat) LEFT JOIN con_template_conf AS d ON b.idtplcfg = d.idtplcfg WHERE    a.idclient =  ORDER BY b.idlang ASC, c.idtree ASC 

[04-May-2010 11:22:07] /contenido/contenido/main.php?area=con&frame=2&contenido=2dbd53a4e95c7879cbf49de7c6281e00 next_record called with no query pending.

[04-May-2010 11:22:57] /contenido/contenido/main.php?contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1364: Field 'itemtype' doesn't have a default value
INSERT INTO con_properties (idproperty) VALUES (15)

[04-May-2010 11:22:57] /contenido/contenido/main.php?contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1364: Field 'author' doesn't have a default value
INSERT INTO
	                con_clients
	                SET
	                    name = 'Testmandant',
	                    frontendpath = 'H:/Apache2.2/htdocs/Testmandant/',
	                    htmlpath = 'http://localhost/Testmandant/',
	                    errsite_cat = '0',
	                    errsite_art = '0',
	                    idclient = '3'
[04-May-2010 11:22:57] /contenido/contenido/main.php?contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1364: Field 'itemtype' doesn't have a default value
INSERT INTO con_properties (idproperty) VALUES (16)

[04-May-2010 11:22:57] /contenido/contenido/main.php?contenido=2dbd53a4e95c7879cbf49de7c6281e00 MySQL error 1364: Field 'itemtype' doesn't have a default value
INSERT INTO con_properties (idproperty) VALUES (17)
Das Backend spricht allerdings von erfolgreich angelegtem Mandant, ich müsse nur noch die Sprache setzen.
Hier scheint was mit dem Exception-Handling nicht zu stimmen.

Bei der Beispielseite war es mir nicht möglich in einer leeren Kategorie einen Artikel anzulegen.
Es kam eine ähnliche Exception, die ich leider nicht mehr parat habe.
Es ging aber wieder um unerlaubt leere DB-Felder ohne existierenden Defaultvalue.


Was läuft hier falsch??

LG
Horst

thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: Ständige MySQL Errors

Beitrag von thepoet » Di 4. Mai 2010, 12:52

Du hast eine zu neue MySQL-Version, die im "strict mode" läuft, das Contenido-Setup ist aber was die Spaltenvorbelegung angeht noch ziemlich schlampig, daher die Fehler. Schau mal deine my.ini an, dort sollte ein Eintrag der Form

Code: Alles auswählen

sql-mode = "STRICT_TRANS_TABLE"
drinstehen. Sobald du STRICT_TRANS_TABLE rausnimmst sollte alles funktionieren.

Siehe Thread http://forum.contenido.org/viewtopic.php?f=63&t=25689

DeadManWalking
Beiträge: 7
Registriert: Di 4. Mai 2010, 12:00
Kontaktdaten:

Re: Ständige MySQL Errors

Beitrag von DeadManWalking » Di 4. Mai 2010, 13:09

Danke für die schnelle Antwort!

Gut, das kann ich lokal leider nicht machen, es würde andere Projekte tangieren.
Dann teste ich eben beim Hoster (und hoffe, dass es dort aus oder konfigurierbar ist).

LG

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Ständige MySQL Errors

Beitrag von xmurrix » Mi 5. Mai 2010, 08:38

Hallo DeadManWalking,

eventuell lässt sich der SQL Mode auch in der DB-Klasse setzen, gleich nach dem Erstellen der Verbindung.

Dazu brauchst du in der conlib/db_mysql.inc oder conlib/db_mysqli.inc (je nachdem, welchen DB Adapter du verwendest) am Ende der Funktion connect() folgende Zeilen hinzufügen.

Code: Alles auswählen

  function connect($Database = "", $Host = "", $User = "", $Password = "") {

    // some code ...

    // 1. change to "non-strict mode"
    $this->query("SET sql_mode = ''");
    
    // 2. or change strict mode for transactional tables
    $this->query("SET sql_mode = STRICT_TRANS_TABLES");

    return $this->Link_ID;
  }
Hier sind beispielhaft zwei Queries drin, du brauchst aber nur eines davon. Da es sich um eine Änderung am Contenido Core handelt, musst du halt beim Update aufpassen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

DeadManWalking
Beiträge: 7
Registriert: Di 4. Mai 2010, 12:00
Kontaktdaten:

Re: Ständige MySQL Errors

Beitrag von DeadManWalking » Sa 20. Nov 2010, 19:55

Späten Dank nochmal an die Helfer.
Beim Hoster war es kein Problem, konnte ich den Modus umstellen.

Grüße

Gesperrt