php et access
salut à vous et merci pour l'espace que vous nous reservez pour nous les amateurs du php. Voilà mon pb : je réussis à me connecter à une base de données MS access en local et je veux supprimer des enregistrements dont mais le critère porte sur une variable date. La voilà :
"delete * FROM ACHAT where Date='$olddate'"
A ma grande surprise, il s'affiche ce message d'erreur :
"Warning: 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\easyphp1-7\www\gestfour\compte\client\infos_dep\valid.php on line 63"
Please, si quelqu'un a une idée de mon erreur, qu'il me fasse signe car je galère dessus depuis deux jours.
Merci d'avance.
lebdenat
Je connais pas bien access mais vu le message , le type de donnée est donc incompatible ,
je suppose que ta date est de type timestamp donc numerique et access est strict la dessus il ne faut rien pour delimiter une chaine de type numérique.
Sinon montre ce que vaut $olddate.
zebdinou pour les intimes / Blog : http://www.zebden.fr
Voila a quoi resemble mon $olddate :
2004-10-13 00:00:00
lebdenat
Voilà ce qui se passe :
-L'utilisateur entre des données dans un champ texte dans le fichier form.php dont voici le code
//===========================================================
echo '<form name="infos_dep" method="GET" action="valid.php">';
echo '<table width=100% height=100% border=1>';
//Le champ texte
echo '<tr><td align="center" width=40%>Date d\'achat</td><td align="left"><input type="text" name="olddate" size="20" value="">';
echo '</td></tr></table>';
//le bouton submit
echo '<table width=100% border=1><tr><td colspan="2" align="center"><input type="reset" value="annuler"> <input type="submit" value="modifier"></td></tr></table>';
echo '</form>';
//===========================================================
-Je récupère la date qu'il a inséré dans la fichier valid.php et j'exécute ma requête (à la ligne 63):
//===========================================================
$olddate = $_GET['olddate'];
//Je passe sur la connexion à la base de donnée : sans problèmes!!!
$req = "DELETE * FROM ACHAT where Date = '$olddate'";
$suppr = odbc_exec ($connexion,$req);
//===========================================================
Quand j'appuie sur le submit, eh bien le message apparaît!!!
"Warning: 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\easyphp1-7\www\gestfour\compte\client\infos_dep\valid.php on line 63"
lebdenat
Bon voilà la solution : remplacer les griffes par les dièzes.
$req = "DELETE * FROM ACHAT where Date = #$olddate#";
En tout cas merci de m'avoir aidé.
lebdenat
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: