Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2007, 13h54   #1
Invité de passage
 
Inscription : mai 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 7
Points : 2
Points : 2
Par défaut [SQL] problème d'insertion dans ma base ou problème de requête sql

voila le résultat que mon navigateur me donne :

Citation:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\ahmed\insertion-selection.php on line 15
par contre moi je ne vois pas d'erreur

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html><body>
<?
$host = "localhost";
$user = "root";
$pass = "";
$bdd = "mutuelles_stages";
$table="mutuelles_a_remplir";
$link =mysql_connect($host,$user,$pass)
or die ("erreur de connexion au SGBD");
mysql_select_db($bdd,$link) 
or die("Impossible de se connecter à la base de données");
/*------------------------affectation de la reqete----------------------------- */
$query = 
"UPDATE $table SET
departement_de_naissance ='$_POST["departement_de_naissance"]', 
commune_de_naissance='$_POST["commune_de_naissance"]',
code_du_pays_de_naissance='$_POST["commune_de_naissance"]', 
date_de_cotisation='$_POST["date_de_cotisation"]',
immatriculation='$_POST["immatriculation"]' 
where $table.id='$_POST["$id"]' ";
 
 
//test d'affichage pour voir jusqu'où compile t'on
echo $query;
//$result = MYSQL_QUERY($query);
//PRINT "Enregistrement effectué dans la base de données" ;
 
/* déconnection avec MySQL */
//deconnection
//MYSQL_CLOSE();
?>
</body>
</html>

aidez moi svp
maroco31 informatik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 14h00   #2
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
Code :
1
2
3
4
$query = 
"UPDATE ". $table ." SET
departement_de_naissance =\"".$_POST["departement_de_naissance"]."\", 
commune_de_naissance=\"".$_POST["commune_de_naissance"]."\",...
voila t'as compris le coup ... ??
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 14h02   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Je pense que le problème vient de ta gestion de $_POST[]

Tu ne peux pas passer un tableau associatif directement dans la requete SQL il faut que tu fasses quelquechose dans ce style :
Code :
1
2
 
$sql = "SELECT * FROM matable WHERE monchamp = '" . $_POST['monchamp'] . "', monchamp2='" . $_POST['monchamp2'] ."'";
il faut "sortir" le $_POST des " ", sinon il n'est pas interprété correctement
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 19h53   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par koopajah
Tu ne peux pas passer un tableau associatif directement dans la requete SQL
Si mais sachez que l'interpolation d'objets complexes (comme $_POST['foo']) requiert d'être encadrés par des accolades :
Code :
"SELECT * FROM matable WHERE monchamp = '{$_POST['monchamp']}', monchamp2='{$_POST['monchamp2']}'";



Cela dit n'oubliez surtout pas d'utiliser la fonction mysql_real_escape_string avant d'utiliser des données externes ($_POST ici) pour une requête !
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 08h16   #5
Membre à l'essai
 
Avatar de yohan0262
 
Inscription : juin 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 159
Points : 21
Points : 21
Envoyer un message via MSN à yohan0262
Citation:
Envoyé par julp
Si mais sachez que l'interpolation d'objets complexes (comme $_POST['foo']) requiert d'être encadrés par des accolades :
Code :
"SELECT * FROM matable WHERE monchamp = '{$_POST['monchamp']}', monchamp2='{$_POST['monchamp2']}'";



Cela dit n'oubliez surtout pas d'utiliser la fonction mysql_real_escape_string avant d'utiliser des données externes ($_POST ici) pour une requête !
Bonne remarque julp, j'ai eu le même problème il y a une semaine et ca marche maintenant
yohan0262 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web