Bonjour, J'ai fais la mise à jour de wampserver 2.5 vers le 3. Maintenant j'ai des erreurs d'insertion dans mes tables alors que je n'avais jamais de problème. Après plusieurs vérifications j'ai constaté qu'en remettant le mysql5.6.17 tout remarche nickel.
Sur l'hébergeur 1and1 je suis en PHP7 et tout marche bien. Le même site en local avec le mysql5.6.29 plus d’insertion dans les tables... ERREUR INSERTION
Mon installation a été faite en suivant vos procédures et je travail avec $mysqli...
Ça me le fait à tous les scripts INSERT et UPDATE il ni a que les SELECT qui fonctionnent ?
$insert = $mysqli->query("INSERT Into listecom2 VALUES ('','".$result['idarticle']."','".$resul['id']."','chèque','".$reference."','".$date."','".$result['titre']."','".AddSlashes($result['boucleparure'])."','".AddSlashes($result['detail'])."','".$result['hb']."','".$result['lb']."','".$result['diam']."','".$result['chemin']."','".$result['fichier']."','".$result['prix']."','".$result['qte']."','".$totallistecom2."') " or die ("erreur inscruste listecom 2 41" mysqli_query($insert);}
Vérifié plusieurs fois, pas d'erreur dans mes scripts...
J'ai supprimé wampserver qui a été modifié vers le 3 et ré-installer wampserver 3 en installation direct, rien à modifier. Ça me fait le même problème, sauf si je remet le mysql5.6.17 !
Ceci n'est pas le message d'erreur exact et complet, mais la ligne du script. J'ai demandé le message d'erreur complet et exact. Voir le code d'insertion MySQL ne présage en rien de ce que seront les valeurs à insérer. Éventuellement voir dans le fichier de log MySQL.
Il y a de fortes probabilités que le script tente d'insérer des valeurs, par exemple des dates, invalides ou comportant des 00 et que ce ne soit pas supporté par MySQL et les modes par défaut, ceux-ci évoluent au cours des évolutions de version.
De plus, pour MySQL, AddSlashes() n'est pas du tout la fonction adéquate ! Pour échapper les paramètres de base de données, vous devez utiliser les fonctions d'échappement spécifiques à votre base de données c'est-à-dire mysqli_real_escape_string().
Je vous ai mis le script en entier sinon les questions sont en répétitions.
Vous avez le message d'erreur en fin de script qui apparait quand sa ne marche pas. Ne m'ennuyer pas avec les AddSlashes(), avec ou sans ça ne marche pas, les 00 en date TOUT A ETE VERIFIE.
Pourquoi ça marche sur plusieurs hébergeurs en PHP7 ?
C'est bon je ne vais pas faire ma vie à répondre morceaux par morceaux. Votre mysql ne marche pas point !
Je vais remettre mon vieux wampserver 2 de toute façon ça ne change rien d'avoir le 3.
> Vous avez le message d'erreur en fin de script qui apparait quand sa ne marche pas. Non. C'est le message que VOUS avez mis comme message d'erreur. Ça n'indique rien quant à la cause de l'erreur. Une éventuelle erreur MySQL ne se gère pas de cette manière, il faut faire afficher l'erreur détectée par MySQL avec quelque chose du genre : blablabla ) or die (die("erreur inscruste listecom 2 41 :".mysqli_error()." dans ".__FILE__." ligne ".__line__); ou, vu que vous utilisez une "class" qui devrait comprendre la fonction error blablabla or error('erreur inscruste listecom 2 41 :', __FILE__, __LINE__, $db->error());
> Ne m'ennuyer pas avec les AddSlashes(), avec ou sans ça ne marche pas,. La documentation PHP afférente à addslashes dit elle-même de ne pas utiliser addslashes mais : Pour échapper les paramètres de base de données, vous devez utiliser les fonctions d'échappement spécifiques à votre base de données. Je n'ai pas dit de ne pas utiliser addslashes, mais de le remplacer par mysqli_real_escape_string(), d'autant plus que dans la class que vous utilisez, ce devrait être prévu : remplacer '".AddSlashes($result['boucleparure'])." par '".$db->escape($result['boucleparure'])."