probleme insert

Répondre
guns17
le 22/02/2005 à 16:36
guns17
Bonjour,
lorsque je vais un insert par phpMyAdmin, la requete fonctionne alors que lorsque je la fais en php elle ne focntionne pas
<?php
$link = mysql_connect("localhost", "root", "") or die("Impossible de se connecter");
mysql_select_db("teissa") or die("Impossible de slectionner la base teissa");

$enseigne = $_POST['enseigne'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse1 = $_POST['adresse1'];
$adresse2 = $_POST['adresse2'];
$cp = $_POST['cp'];
$ville = $_POST['ville'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['mail'];
$descriptif = $_POST['descriptif'];
$region = $_POST['region'];

$query = 'INSERT distributeur(enseigne, nom, prenom, adresse1, adresse2, ville, codePostal, telephone, fax, mail, descriptif, region) VALUES('.$enseigne.', '.$nom.', '.$prenom.', '.$adresse1.', '.$adresse2.', '.$ville.', '.$cp.', '.$tel.', '.$fax.', '.$email.', '.$descriptif.', '.$region.')';
$result = mysql_query($query, $link) or die("Impossible d'inserer dans la table");
?>

le resultat est : Impossible d'inserer dans la table.

je suis novice en php. y-a-t'il une autre facon de faire?
Merci.
zebden
le 22/02/2005 à 16:57
zebden
deux choses :

Toutes valeurs non numérique genre Varchar doivent etre délimitées par des guillemets (ici) genre "'.$adresse.'".

Secondo dans ton or die met :

or die('Impossible d'inserer dans la table '.$query.''.mysql_error());

Ainsi tu affichera dans ton erreur la requete envoyés avec les valeurs et l'erreur mysql renvoyée.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Bzh
le 22/02/2005 à 17:11
Bzh
Par contre fait très attention !!!!

Tu ne vérifie pas et surtout tu ne protège aucune de tes entrés avant de les insérer dans ta base de donnée !!!

SQL c' est hyper pratique mais aussi HYPER dangereux lorsque l' on ne protège pas sa requètte !!!

Bye...

smiley
bibi
le 22/02/2005 à 18:24
bibi
la syntaxe

INSERT INTO

tu as oublié le INTO :)
commit suicide
guns17
le 23/02/2005 à 08:46
guns17
bonjour, merci pour les reponses. concernant la protection des données, je la fais en javascript dans mon formulaire. c'est suffisant?
piett
le 23/02/2005 à 08:52
piett
Salut,

Par "protéger" il veut peut-être dire :
strippslashes($var);
avant l'insertion dans la db.
"Des millions d'esprits ouverts ne peuvent avoir tort" Linux ;-)
piett
le 23/02/2005 à 08:52
piett
Heu, addslashes($var).
"Des millions d'esprits ouverts ne peuvent avoir tort" Linux ;-)
Rex
le 23/02/2005 à 09:02
Rex
Non, addslashes ne devrait pratiquement jamais être utilisé !

Pour le cas présent, il faut utiliser mysql_real_escape_string.

Lisez ceci : La magie noire des apostrophes magiques
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Rex
le 23/02/2005 à 09:03
Rex
De plus, la protection par javascript n'est pas du tout suffisante.

Il faut TOUJOURS faire des contrôles sur le serveur. Les contrôles en JS sont là uniquement pour améliorer le quotidient de l'utilisateur. S'il désactive le JS, c'est tantpis pour lui ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Répondre
LoadingChargement en cours