Exécution requête SQL sur DB access 2016

Fermé
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 - Modifié le 8 nov. 2018 à 15:04
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 - 9 nov. 2018 à 09:13
Bonjour,

Je suis obligé à manipuler une base de données Access 2016 à l'aide du PHP, pour ce faire j'ai créer une connexion vers ma base de donnée et j'ai lancé cette requete:
SELECT [15 Novembre EcolePrep].Année
FROM [15 Novembre EcolePrep]
WHERE ((([15 Novembre EcolePrep].Année)='2018/2019'));


mais je suis face à cette erreur :

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1., SQL state 07001


j'ai bien exécuté cette requête sur Access en mode SQL Direct et ça a marché bien sans erreur!!

Donner moi de l'aide svp !!!.... j'ai bien cherché sur le net mais j'arrive pas à résoudre mon problème!!!

4 réponses

jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
8 nov. 2018 à 14:53
Bonjour,
Sans voir le code PHP concerné par cette erreur.... impossible de te répondre !
1
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
Modifié le 8 nov. 2018 à 15:35
bonjour jordane45... désolé, voilà mon code php:
       $conn_r=odbc_connect('R','','');
       if (!$conn_r) {exit("Echec de connexion " );} 
       $requete="
         SELECT Année
         FROM [15 Novembre EcolePrep]
         WHERE Année='2018/2019';
         ";
       echo $requete;
       $rs_r=odbc_exec($conn_r,$requete);


et voilà ma DSN:
0
jordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 4 719
8 nov. 2018 à 16:44
Déjà...
des noms de tables et/ou de champs avec des Accents et des espaces....arghhhhhhhhhh....
même si access le permet.. c'est le meilleur moyen de rencontrer des problèmes.

Je ne fais pas d'ODBC sur access... mais en général, le message d'erreur que tu rencontres se produit à cause de la requête.
Un champ mal nommé par exemple. (ou mal interprété ).
Vérifie l'encodage de ton fichier PHP (vu que tu as des accents dans tes requêtes... assures toi d'être en UTF8 sans BOM ) ça pourrait corriger le souci.
=> Voir chapitre 1 du lien suivant : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
Modifié le 8 nov. 2018 à 17:33
merci pour votre effort jordane45. Je suis obligé à manipuler cette base access qui viennent d'une autre partie de mon système :(( ... l'encodage du fichier php est en UTF8 sans BOM comme vous avez dit :

voilà le contenu de ma table:



mais le problème est prèsent encore!!!
y a t'il une méthode en php pour paramétrer l'encodage des caractères de connexion odbc comme celle de MYSQL : mysql_query("SET NAMES 'utf8'");
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
8 nov. 2018 à 17:34
structure de ma table:
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
8 nov. 2018 à 20:09
Up
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
9 nov. 2018 à 04:16
UP
0
Joker_ Messages postés 172 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 20 janvier 2023 1
9 nov. 2018 à 09:13
J'ai bien cassé la tète toute la veille mais j'arrive bien à résoudre le problème sauf que je suis sure que le problème est causé par le champ 'Année' en raison de l'accent (é) parce que j'ai changé Année par Annee et ça a marché sans erreur.

Je répète que la base Access 2016 en question est le fruit d'un autre système informatique VB et je suis obligé à manipuler cette base par mon propre système en PHP.
0