[RESOLU] INSERT INTO impossible en local depuis changement de version Wamp ???

Eléphant du PHP | 213 Messages

13 janv. 2019, 13:31

Bonjour,
je ne comprend pas car depuis que j'ai changé ma version de Wampserver par la dernière version 3.1.4 il n'est plus possible de faire d'enregistrement INSERT INTO (qui fonctionnait juste avant) dans ma base sql.

- Je confirme avoir testé online et mes requêtes fonctionnes parfaitement.
- Par contre les UPDATES et les SELECT interagissent parfaitement avec la BDD en local.
- En désactivant mon firewall et anti-virus le problème reste le même.
- Mon port MySQL est 3306 au lieu de 80 mais lorsque je veux le changer via wamp il me dit qu'il n'est pas valide et qu'il doit être compris entre 3301 et 3309.
- Quand j'affiche l'erreur de mes requêtes cela affiche : Warning: PDOStatement::execute(): SQLSTATE[HY000]: General error: 1364 Field 'titre' doesn't have a default value in C:\wamp\www\abc\admin\templates\pages\page.php on line 119
Hors il n'y avait pas d'erreur avant la mise à jour de Wamp.

Pouvez-vous me venir en aide svp ?
Je vous remercie
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8107 Messages

13 janv. 2019, 13:44

Quand on une erreur MySQL, la meilleure approche pour aider au debugage c'est de tester ta requête seule dans phpmyadmin.

A priori vu le message d'erreur, je dirai que ta requête essaye de faire un INSERT sans indiquer de titre or dans la structure de ta table le champ titre est obligatoire (Colonne NULL à Non dans phpmyadmin)
Si tu veux autoriser des enregistrement sans titre, alors il faut que tu modifies la structure de ta table pour indiquer que ce champ peut être Null
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 213 Messages

13 janv. 2019, 19:44

Merci mais comme précisé, mes tables fonctionnes parfaitement en online le problème ne vient par conséquent pas de ma requête qui fonctionnait aussi très bien en local avant d'avoir réinstallé wamp.
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8107 Messages

13 janv. 2019, 20:06

Le message d'erreur que tu obtiens est celui de ton serveur SQL et pas de ton serveur PHP.

Donc je dirai que tu as 99.9% de chance que le problème vienne de ta requête SQL qui essaye de faire quelque chose d'incorrect sur le champ "titre".
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 213 Messages

13 janv. 2019, 21:51

Oui en effet cela doit venir de SQL mais très certainement des paramètres de SQL ou de WampServer et non de la requête étant donné que cette même requête fonctionne en ligne et que c'est seulement lorsque j'ai réinstallé wamp que cela ne fonctionne plus. Les requêtes INTO fonctionnait parfaitement en local avant cette réinstall. Donc il ne peut s'agir que des 0.1% de chance que le problème ne vienne pas de la requête ;)
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8107 Messages

13 janv. 2019, 22:17

Les 0.1% restant moi je les gardait pour les extraterrestres ;-)

En tout cas, si tu veux résoudre ton problème il faut que tu modifies ta requête ou ta table comme je te l'ai indiqué dans mon 1er message.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 213 Messages

14 janv. 2019, 18:14

Ohoho j'ai trouvé les 0,1% ;)
MySQL était par défaut en mode STRICT.
j'ai donc passé en commentaire la ligne STRICT_ALL_TABLES, etc... de mon fichier my.ini
Et voilou !
Merci quand même A+
Cadeaux personnalisés d'après photos, gravure...
http://www.cadeauxplaisir.com/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8107 Messages

14 janv. 2019, 20:40

Moi il me semble en lisant la doc qu'on est bien dans les 99.9% :
STRICT_ALL_TABLES
Enable strict SQL mode for all storage engines. Invalid data values are rejected.
Ta requête essaye d'insérer des données invalides, donc c'était bien un problème de requête SQL que tu as contournée (au lieu de la corrigée) en demandant à ton serveur SQL de ne pas bloquer sur cette erreur. :-D

Mais l'essentiel c'est que ça fonctionne désormais !
Quand tout le reste a échoué, lisez le mode d'emploi...