Field 'password request key' doesn't have a default value

Aus Wiki | modified eCommerce Shopsoftware
Zur Navigation springenZur Suche springen

(Quelle: Anwenderhandbuch 2.9)

1364 - Field 'password_request_key' doesn't have a default value
insert into customers ( customers_id, customers_status, customers_firstname, 
customers_lastname, customers_gender, customers_email_address, 
customers_default_address_id, customers_telephone, customers_password, 
delete_user) VALUES ('1', '0', 'Max', 'Mustermann','m', 'max@mustershop.de',
'1', '040/123456', '96cc64ee0eabe3b4333817411300f5ac', '0')
[XT SQL Error]

Die oben genannte Fehlermeldung tritt während der xt:Commerce Installation im Schritt 6 bei "xtc_installer/install_step6.php" auf.

Problem:
Häufig ist das ein MySQL 5 spezifisches Problem, wenn die MySQL 5 Datenbank im sogenannten „Strict“-Modus betrieben wird. Die Tabelle ‚customers‘ enthält das Feld 'password_request_key' für das kein "default“ Wert definiert ist und dem mit der oben genannten SQLStatement auch kein Wert zugewiesen wird.

Lösung:
Diese Art von MySQL 5-Problemen lässt sich „global“ beheben. Dazu ist in den Dateien "inc/xtc_db_connect.inc.php" folgender Quelltext

if ($$link) mysql_select_db($database);

zu ersetzen mit:

$vers = @mysql_get_server_info();
if(substr($vers,0,1) > 4) @mysql_query("SET SESSION sql_mode='MYSQL40'");
if ($$link) mysql_select_db($database);

und in der Datei "inc/xtc_db_connect_installer.inc.php" folgender Quelltext

$$link = @mysql_connect($server, $username, $password) or $db_error = mysql_error();

zu ersetzen mit:

$$link = @mysql_connect($server, $username, $password) or $db_error = mysql_error();
$vers = @mysql_get_server_info();
if(substr($vers,0,1) > 4) @mysql_query("SET SESSION sql_mode='MYSQL40'");

Damit wird der "Strict"-Modus von MySQL 5 deaktiviert und die MySQL 5 Datenbank akzeptiert auch wieder nicht-standardkonformes SQL.