Question

J'essaie d'installer OpenCart pour la première fois de ma machine locale.J'utilise XAMPP 1.7.4 PHP 5.3.4 et Windows7 est mon système d'exploitation.J'essaie de suivre toutes les étapes décrivent ici .Mais, après avoir donné le nom de base de données, nom d'utilisateur et mot de passe DB lorsque je appuie sur le bouton "Continuer", je reçois le message d'erreur suivant:

variable 'sql_mode' ne peut pas être réglé sur la valeur de 'no_auto_value_on_zero'

J'essaie de google avec ce message d'erreur mais je ne trouve rien.S'il vous plaît aidez-moi .....

Était-ce utile?

La solution

Remove below line from opencart.sql

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"

you can find opencart.sql file in install folder

Above error comes if different version of mysql is being used.

Autres conseils

Change the lines of code from the following files:

  • install/cli_install.php

    Search for $db->query("SET @@session.sql_mode = 'MYSQL40'"); and replace with $db->query("SET @@session.sql_mode = ''");

  • install/model/install/install.php

    Search for $db->query("SET @@session.sql_mode = 'MYSQL40'"); and replace with $db->query("SET @@session.sql_mode = ''");

Becouse at this time are 5 results on google regarding to this.... and i didn't found SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO

I had similar problem. My problem was Error 1231,unable to SET SQL_MODE=MYSQL40 . Something like that.

I solved in this way:

  1. go to system/database/mysql.php find line 50 or

    trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
    exit();

  2. comment the //exit();

  3. drop all your tables from database.
  4. refresh to resend

In this way the code will continue and the cart will be able to finish the configuration.

I hope it helped someone.

PS: I posted this on my website: w3bdeveloper.com

The issue is that "sql_code=MYSQL40" has been deprecated on MySQL since 5.7.22 (https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_mysql40)

My solution is similar to @Yogesh Sanger. Instead of setting the sql_code value to an empty string, I just remove the line $db->query("SET @@session.sql_mode = 'MYSQL40'");

For those using Unix, here is a command to remove the culprit

sed -i '/MYSQL40/d' <OpenCart Directory>/install/cli_install.php
sed -i '/MYSQL40/d' <OpenCart Directory>/install/model/install/install.php
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top