Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
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 15/05/2006, 11h02   #1
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
Par défaut Un problème avec une reqête sous PHP

Bonjour voila, j'utiliser PHP avec un base de données Access et je rencontre un probleme lorsque que je test mes requête, ma première requete passe sans problème, mais ensuite je fais un INSERT et a l'execution j'ai une jolie erreur m'indiquant qu'il y a une erreur de syntaxe dans mon insert:

Citation:
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\intervention.php on line 46
37000
pourtant j'ai bien regardé et je ne vois pas en quoi mon INSERT présente une erreur de syntaxe.

Code :
$sql = "INSERT  INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo) VALUES ( '$idClient->ID_Site', '$client', '$bilan', '$memo') " ;
pour ceux que ça intéresse voila la code php :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
<?
    //connection au serveur
      $cnx = odbc_connect( "DSN_ines", "root", "" ) or die ("Impossible de se connecter à la bas de donnée") ;
 
    //récupération des valeurs des champs:
      //client :
      $client = $_POST['client'] ;
 
    //bilan :
      $bilan = $_POST['bilan'] ;
 
    //mémo :
      $memo = $_POST['memo'] ;
 
    //*************************************************
    //Récupération de l'identifiant du client :
    //*************************************************
 
    //requête SQL :
    $sql = "SELECT ID_Site FROM site WHERE Raison_sociale = '$client'" ;
 
    //exécution de la requête :
    $requete = odbc_do($cnx, $sql) or die( odbc_error() ) ;
 
    $idClient = odbc_fetch_object( $requete );
 
    echo $idClient->ID_Site;
 
    //*******************************************************************************  
    //Stokage des informations de l'intervention dans la table donnees_intervention :
    //*******************************************************************************
 
    //requête SQL :
    $sql = "INSERT  INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo)
            VALUES ( '$idClient->ID_Site', '$client', '$bilan', '$memo') " ;
 
    //exécution de la requête :
    $requete = odbc_do($cnx, $sql) or die( odbc_error() ) ;
 
    //affichage des résultats, pour savoir si l'insertion a marchée:
      if($requete)
        echo("<center>L'insertion a été correctement effectuée</center>") ;
      else
        echo("<center>L'insertion à échouée</center>") ;
 
?>
Si quelqu'un pouvait m'aider je lui en serrait reconnaissant. Merci
zackrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h08   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Code :
1
2
 
'$idClient->ID_Site'
C'est ton champ ça?

sinon fait un echo $sql pour voir a quoi resemble ta requete avant de l'envoyer..
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h10   #3
Expert Confirmé
 
Avatar de titoumimi
 
Inscription : décembre 2003
Messages : 3 717
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : décembre 2003
Messages : 3 717
Points : 3 082
Points : 3 082
est ce que tu peux nous afficher ta requête une fois générée stp ? (echo $sql; )

Merci


'$idClient->ID_Site' : si c'est un id numérique, pas besoin de quotes ...
__________________
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
La rubrique Ruby / Rails recrute. Contactez moi !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
titoumimi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h16   #4
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
voila :

Citation:
INSERT INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo) VALUES ( -2145104007, 'SODDIM', 'salut', 'toi')
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\intervention.php on line 48
37000
zackrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h19   #5
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
un id site négatif...ca me parait pas trop logique..
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h20   #6
Membre du Club
 
Étudiant
Inscription : avril 2005
Messages : 214
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2005
Messages : 214
Points : 62
Points : 62
on ne sait jamais mais essaye de mettre des simple quotes ' autour de ID Site car c'est bizard ce nombre negatif !
Tr@nkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h23   #7
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
c'est normal qu'il soit négatif
C'est l'entreprise ou j'effectue mon stage. ils ont des id aussi bien possitif que negatif dans leur table. Donc j'ai pas a me soucier du signe normalement.

Et pour ce qui est des simple cote ca ne change tout simplement rien ^^;

toujour la meme erreur

Citation:
INSERT INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo) VALUES ( '-2145104007', 'SODDIM', 'salut', 'toi')
Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-8\www\intervention.php on line 48
37000
zackrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h34   #8
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Si tu fait la requete directement sur la base sans passer par php ca passe ou pas....si passe pas non plus ta un pb dans ta requete mais je vois pas quoi..dsl

Peut êttre si tu nous montrez la structure de ta base..
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h46   #9
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
J'ai fait se que tu m'as dis et il s'agit bien d'une erreur de syntaxe, je vais de voir y réfléchir car je ne vois pas trop se qui cloche.
zackrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h49   #10
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Lol bon courage ... montre nous ta table peut être que...miracle
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h54   #11
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 111
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : juin 2005
Messages : 111
Points : 33
Points : 33
Envoyer un message via ICQ à Alexlesilex Envoyer un message via MSN à Alexlesilex
je pense que l'erreur se trouve la :

Code :
INSERT INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo)
il faut ajouter des backquotes `` dans tes noms de champs :

Code :
INSERT INTO donnees_intervention ( `ID Site`, `Raison sociale`, Bilan, Memo)
^^
Alexlesilex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h54   #12
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
Bon j'ai carrement modifier la table donnees_intervention, j'ai passé ID Site en ID_Site et même chose pour la Raison sociale. Ca a résolu mes problèmes, je vous remercie pour votre aide.
zackrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h55   #13
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 111
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : juin 2005
Messages : 111
Points : 33
Points : 33
Envoyer un message via ICQ à Alexlesilex Envoyer un message via MSN à Alexlesilex
Essai quand meme avec des `` juste pour savoir . ^^
Alexlesilex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 11h56   #14
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Citation:
Envoyé par Alexlesilex
je pense que l'erreur se trouve la :

Code :
INSERT INTO donnees_intervention ( ID Site, Raison sociale, Bilan, Memo)
il faut ajouter des backquotes `` dans tes noms de champs :

Code :
INSERT INTO donnees_intervention ( `ID Site`, `Raison sociale`, Bilan, Memo)
^^
a bé oui ca doit venir de la.....
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 12h09   #15
Membre à l'essai
 
Inscription : avril 2006
Messages : 84
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 84
Points : 20
Points : 20
j'ai déjà essayé comme ca et ca ne passé pas désolé
zackrel 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 03h42.


 
 
 
 
Partenaires

Hébergement Web