Un type de données difficiles

Résolu
kanzory Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
kanzory Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

Utilisateur anonyme
 
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   Statut Membre Dernière intervention  
 
C'est ça. Merci beaucoup :)
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
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   Statut Membre Dernière intervention  
 
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 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
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   Statut Membre Dernière intervention  
 
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