[Résolu] Insérer un valeur négative dans mySQl
-
- Messages : 32
- Inscription : 21 octobre 2012 à 18:54
J'ai une requête qui envoie les données suivantes dans une page PHP
array (
'id' => '160',
'code_article' => '3660603004927',
'product_name' => 'Bénédicta Sauce au bleu le pot de 260 g',
'createdon' => '2020-09-11',
'qt' => '1',
'pa' => '2.74',
'longitide' => '-1.2560526',
'latitude' => '44.0785292',
'id_magasin' => '2',
'utilisateur' => '82942d7411af0066',
)
Le champ longitude est négatif mais s'enregistre à zéro dans la base de données
Dans ma page PHP
$dbh = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);
\t\t\t\t
$sql = "INSERT INTO wp3_achats (id,code_article, product_name,createdon,qt,pa,longitude,latitude,id_magasin,utilisateur)
\t\t\t\t VALUES
\t\t\t\t\t\t (
\t\t\t\t\t\t '$_POST[id]' ,
\t\t\t\t\t\t '$_POST[code_article]' ,
\t\t\t\t\t\t '$_POST[product_name]' ,
\t\t\t\t\t\t '$_POST[createdon]' ,
\t\t\t\t\t '$_POST[qt]' ,
\t\t\t\t\t\t '$_POST[pa]' ,
\t\t\t\t\t\t '$_POST[longiture]' ,
\t\t\t\t\t\t '$_POST[latitude]' ,
\t\t\t\t\t\t '$_POST[id_magasin]' ,
\t\t\t\t\t\t '$_POST[utilisateur]'
\t\t\t\t\t\t )";
Le type de champ dans ma base de données est double(10,4)
Mes recherche sur internet sont restées infructueuses
Avez vous une solution pour ce problème
Merci d'avance
Cordialement
Philippe
Avant de se plonger dans votre questionnement, je dois vous faire remarquer quelque chose de TRES important.
Vous utilisez du POST directement dans la requête SQL sans la préparer avec PDO, du coup n'importe qui peut envoyer une sous requête SQL pour lancer ce qu'il veut sur toutes vos données SQL et même supprimer toutes vos données dans vos bases de données en quelques secondes. C'est ce que l'on nomme de l'injection SQL.
Ensuite, si la valeur de la longitude est à 0, c'est peut être parce que vous ne la renseignez pas et du coup elle est à 0 comme c'est un nombre. Vous avez mis un "R" au lieu de la lettre "D" dans le nom de la variable "longituRe" :
philippe40 a écrit :'$_POST[longiture]
-
- Messages : 32
- Inscription : 21 octobre 2012 à 18:54
Je n'avais pas vu la faute et je tournais en rond.
Je vais tenir compte de votre avis sur la protection des injections
cordialement
Philippe