Un type de données difficiles

Résolu/Fermé
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014 - 26 juin 2014 à 09:19
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014 - 4 juil. 2014 à 14:28
Bonjour,

J'aimerai insérer des données dans un tableau de phpmyadmin. mais je ne peux pas trouver un type de champs qui s'adapte avec mes données. Voici quelques exemples de mes données:

43°16'06"N 1°08'22"E
42°56'18"N 1°18'26"E
43°36'06"N 1°28'42"E

etc. j'ai essayé text, varchar, geometry, mais aucun marche. Comment peux je gérer ce problème?

merci

3 réponses

Utilisateur anonyme
26 juin 2014 à 11:39
Bonjour

C'est parce que tu n'échappes pas les caractères spéciaux dans tes données. Tes données contiennent des apostrophes, mysql croit que c'est la fin d'une valeur, puisque tu encadres tes valeurs avec des apostrophes.

Tu n'aurais pas ce problème avec les requêtes préparées :

$req2 = $bdd -> prepare("UPDATE base SET 
Iden_SB = :iden_SB, 
coordonnees_GPS = :GPS, 
date_creation = :date_creation, 
canal_utilise = :canal, 
photo = :nom_photo_SB, 
MODIF = 0 WHERE MODIF = 1") or die(print_r($bdd->errorInfo()));

$req2->execute(array(":iden_SB"=>$_POST['iden_SB'],
    ":GPS"=>$_POST['GPS'],
    ":date_creation"=>$_POST['date_creation'],
    ":canal"=>$_POST['canal'],
    ":nom_photo_SB"=>$nom_photo_SB));
1
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014
4 juil. 2014 à 14:28
C'est ça. Merci beaucoup :)
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
26 juin 2014 à 09:22
Bonjour,

Pour info, le type varchar(255) permet d'enregistrer tout type de données (seule exception : les fichiers joints).

Quel message d'erreur as tu exactement quand tu essayes d'insérer ces données dans un champ de type varchar ? As tu essayé, au cas où ce soit un problème de configuration par défaut, avec le type "text" (ou "note" je sais plus sous MySQL) ?
0
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014
26 juin 2014 à 09:26
Oui, voici l'erreur :
Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '06"N 1°28'22"E', date_creation = '2014-02-24 21:59:51', canal_utilise = 'E' at line 5 ) 1

Si je remplace les valeurs de ce champs par une chaine 'normale', on n'affiche plus ce problème
0
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
26 juin 2014 à 09:31
Je comprends plus là ^^

Je croyais que tu essayais d'enregistrer des données directement dans phpMyAdmin ? Si ce n'est pas le cas, quel langage utilises tu pour les enregistrer ? php ? ASP ?

Peux tu me donner ta requête SQL également ?
0
kanzory Messages postés 10 Date d'inscription mardi 13 mai 2014 Statut Membre Dernière intervention 4 juillet 2014
26 juin 2014 à 09:39
Pas de souci. C'est par php:

$req2 = $bdd -> query("UPDATE base SET
Iden_SB = '".$_POST['iden_SB']."',

coordonnees_GPS = '".$_POST['GPS']."',
date_creation = '".$_POST['date_creation']."',
canal_utilise = '".$_POST['canal']."',

photo = '$nom_photo_SB',
MODIF = 0 WHERE MODIF = 1") or die(print_r($bdd->errorInfo()));
0