Kann kein neues Layout und Modul erstellen

Gesperrt
Schwarzesocke
Beiträge: 39
Registriert: Fr 17. Dez 2004, 14:53
Wohnort: NRW
Kontaktdaten:

Kann kein neues Layout und Modul erstellen

Beitrag von Schwarzesocke »

Hab heute mal wieder eine Contenido-Version zum Experimentieren auf meinem lokalen WebServer installiert. Die Installation hat soweit auch wieder gut geklappt, nur kann ich im Backend kein neues Layout und kein neues Modul erstellen. Das bearbeiten vorhandener Layouts und Module klappt einwandfrei.

Beim erstellen eines neuen Moduls wird im Hauptfenster (frame 4) nix angezeigt und der ErrorLog gibt folgenden SQL-Error aus?!


[29-Jan-2008 21:02:22] /contenido/main.php?area=mod_edit&frame=4&action=mod_new&contenido=e3e48573e6d2a97195272320e5d792c2 MySQL error 1364: Field 'name' doesn't have a default value
INSERT INTO con_mod (idmod) VALUES (52)
[29-Jan-2008 21:02:23] /contenido/main.php?area=mod_edit&frame=4&action=mod_new&contenido=e3e48573e6d2a97195272320e5d792c2 MySQL error 1364: Field 'type' doesn't have a default value
INSERT INTO con_inuse (idinuse) VALUES (10)

Beim erstellen eines neuen Layouts wird im Hauptfenster (frame 4) "foo" angezeigt und der ErrorLog gibt folgenden SQL-Error aus?!

[29-Jan-2008 21:03:35] /contenido/main.php?area=lay_edit&frame=4&action=lay_new&contenido=e3e48573e6d2a97195272320e5d792c2 MySQL error 1364: Field 'name' doesn't have a default value
INSERT INTO con_lay (idlay) VALUES (9)

Meine lokale WebServer-Installation:
Server Betriebssystem: Apache/2.0.59 (Win32)
Datenbankserver-Version: mysql 5.0.26-community-nt
Installierte PHP-Version: 5.1.6
Contenido Version: 4.6.23

Hab im Forum schon nach einem derartigen Problem gesucht, aber nix gefunden.

Eile ist nicht unbedingt geboten, würde mich aber trotzdem interessieren warum Contenido lokal bei mir nicht laufen will?

Besten Dank und viele Grüße,
Schwarzesocke
Zuletzt geändert von Schwarzesocke am Di 7. Apr 2009, 13:53, insgesamt 1-mal geändert.
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Ist ein Bug in Contenido:

class.genericdb.php Zeile 1176:

Code: Alles auswählen

	/**
	 * create()
	 * Creates a new item in the table and loads it afterwards.
	 */
	function create()
	{
		/* Local new db instance since we don't want to kill our
		   probably existing result set */
		$db = new DB_Contenido;

		$nextid = $db->nextid($this->table);
		$sql = "INSERT INTO ".$this->table." (";
		$sql .= $this->primaryKey.") VALUES (".$nextid.")";

		$db->query($sql);
		return $this->loaditem($nextid);
	}
Verursacht SQL-Fehler im strict SQL Mode, weil nicht alle Tabellenspalten Default Values haben. s. http://dev.mysql.com/doc/refman/5.0/en/ ... aults.html

Die Genericdb deswegen umzubauen halte ich für übertrieben, vielmehr sollten für alle Tabellen Default Values gesetzt werden.

@Schwarzesocke:
Entweder den SQL-Modus ändern: http://dev.mysql.com/doc/refman/5.0/en/ ... -mode.html oder DEFAULT werte für die Tabellen setzten z.B.:

Code: Alles auswählen

ALTER TABLE `con_mod`
CHANGE `name` `name` VARCHAR(255) NOT NULL DEFAULT ' ',
CHANGE `type` `type` VARCHAR(32) NOT NULL DEFAULT ' ',
CHANGE `author` `author` VARCHAR(32) NOT NULL DEFAULT ' '
Bis dann
Tono
Schwarzesocke
Beiträge: 39
Registriert: Fr 17. Dez 2004, 14:53
Wohnort: NRW
Kontaktdaten:

Beitrag von Schwarzesocke »

Die "Defaluts" für die drei Spalten setzten hat bei mir nicht gereicht, betrifft meiner Fehlermeldung nach, ja auch die Spalten "name" und "author" der Tabelle "con_lay".

Der Query zum setzten der Default-Werte sähe also wie folgt aus:

Code: Alles auswählen

ALTER TABLE `con_mod`
CHANGE `name` `name` VARCHAR(255) NOT NULL DEFAULT ' ',
CHANGE `type` `type` VARCHAR(32) NOT NULL DEFAULT ' ',
CHANGE `author` `author` VARCHAR(32) NOT NULL DEFAULT ' '
ALTER TABLE `con_lay`
CHANGE `name` `name` VARCHAR(255) NOT NULL DEFAULT ' ',
CHANGE `author` `author` VARCHAR(32) NOT NULL DEFAULT ' '
Den SQL-Modus hab ich auch entsprechend verändert, also strict mode aus. Oder ist datt nicht ratsam, den mySql-Server nicht im 'strict mode' laufen zu lassen?

Danke für's Wissen und die Hilfe, tono :)
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Ja, das war auch nur als Beispiel gedacht, das müsste warscheinlich in noch viel mehr Tabellen gemacht werden, nur bei den beiden ist es Dir halt gerade aufgefallen.

Wenn der strict-Mode jetzt aus ist sollten keine solchen Fehler mehr auftreten. Mit diesen SQL-Modi kenn ich mich eigentlich garnicht aus, aber der Beschreibung nach sind keine Probleme zu vermuten.
Bis dann
Tono
Schwarzesocke
Beiträge: 39
Registriert: Fr 17. Dez 2004, 14:53
Wohnort: NRW
Kontaktdaten:

Beitrag von Schwarzesocke »

OK, alles klar. Also für alle die selbiges Problem haben - in der my.ini (Windows) den 'strict mode" ausschalten. Ist der einfachste und schnellste Weg um datt Problem zu beheben.

Gehört der Thread dann nicht in's Forum Bugs verschoben?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Dort findet sich bereits ein entsprechender Thread...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt