Problème entre ph et base access

Résolu/Fermé
byakuichi - 16 avril 2008 à 11:40
 simo_123 - 28 mai 2009 à 08:42
bonjour,
J'ai un problème mon code php me sort une erreur et je ne comprends pas ce que c'est comme erreur et donc ni comment la résoudre :

Warning: odbc_do() [function.odbc-do]: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Type de données incompatible dans l'expression du critère., SQL state 22005 in SQLExecDirect in C:\Program Files\EasyPHP 2.0b1\www\insertion2.php on line 25
22005

voila, merci
cordialement byakuichi

11 réponses

bonjour,

peux-tu nous poster ton code pour que l'on puisse t'aider ?
0
<?php
//insertion.php

//connection au serveur
$cnx = odbc_connect( "DNS_personne", "root", "",SQL_CUR_USE_DRIVER ) or die ("Impossible de se connecter à la bas de donnée") ;

//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"] ;
//prenom:
$prenom = $_POST["prenom"] ;
//adresse:
$adresse = $_POST["adresse"] ;
//numéro de téléphone:
$tel = $_POST["telephone"] ;

//création de la requête SQL:
$sql = "INSERT INTO personne (nom, prenom, adresse, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$tel') " ;

//affichage de la requête SQL pour mieux comprendre ;) :
echo( $sql);

//exécution de la requête SQL:
$requete = odbc_do($cnx, $sql) or die(odbc_error());

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
echo("L'insertion a été correctement effectuée") ;
else
echo("L'insertion à échouée") ;
?>

code tout simple pour voir comment marchait php avec access et odbc
0
ok, pas de soucis dans le code.

Par contre, cela doit être une erreur de typage dans la requête SQL. Par exemple, le numéro de téléphone dans ta tabe, c'est un entier ou une chaine de caractères ?
0
c'est du texte sauf erreur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ce que tu peux faire, c'est afficher ta requête (ce qui est déjà fait apparement avec "echo $sql;"), et la copier-coller dans access pour l'exécuter. Tu auras peut-être un message d'erreur plus précis.

si tu pouvais la poster sur le fofo, pour qu'on voies ça.
0
j'ai un problème j'ai jamais réussi à créer une requete sous acces je suis sous 2007 et j'ai jamais réussi à en lancer une seule..
comment on fait ?
l'assistant de requetes ne peut pas m'aider pour ça je crois.
et quand je vais dans sql direct je colle ma requete en changeant les variables php en données il me sort une fenetre :
ou je dois selectionner mon DSN et une fois que je l'ai selectionné il me sort :

impossible d'utiliser ODBC pour importer de, exporter vers, ou attacher une tabble à une base de données externe Microsoft Office Access ou ISAM à votre base de données

...je ne sais pas trop comment faire...
0
j'arrive à lui faire ajouter que quand il veut... mais toujours pas sous php et sous access il me renvoi pas vraiment d'erreur...
il aime pas les espaces dans mes champs déjà visiblement
0
n'y a-t-il pas de ' dans ta requête ?

Pourrais-tu poster des exemples de requêtes qui fonctionnent, et qui ne fonctionnent pas ?

Et pour exécuter des requêtes dans access, il faut en créer une nouvelle avec l'assistant, et basculer l'affichage en Mode SQL. Là, tu auras la requête écrite en SQL.
0
y a pas à dire oracle c'est 10 fois plus simple...
0
bon en utilisant la requete faite par access ca m'a l'air de fonctionner, il m'affiche : insertion correctement effectué
mais reste un petit problème ma table n'est jamais modifiée...

une idée pour m'éclairer la dessus
0
je pense Lorsque tu as crée ta table personne en Access tu as mis un identificateur (id) ou bien un autre champ qu'on peut pas l'affecter
la valeur NULL ,il faut l'affecter obligatoirement avec une valeur c'est pour ca qu'il te donne ce type d'erreur .
veuillez vérifier les champs de ta table, et dans ton script php remplis tout les champs crée dans ta table personne.
Et merci.
0