logo

Knowledge Is Power

 
 

- Reinit des nouveaux posts -

- Recherche -

Messages Privés - Derniers posts
S'enregistrer - Login - Liste des membres
Vous logger : Login Pass

Unix-like >> Probléme MDBtool Newtopic | Reply
poster txt
shiva31
Inscrit le 20-05-2009
Posté le 07-07-2009 10:05

Bonjour,

Je souhaite lire des BDD acces depuis php avec ODBC mais j'ai un problème...
J'ai déjà installer toute les dépendances sauf wordexp :

http://mdbtools.sourceforge.net/install/c98.htm


J'ai donc installer mdbtool a l'aide de l'outil "APT", installation réussi mais cela ne marche pas...

J'ai donc installer mdbtool a l'aide des source et cela ne marche quand même pas...

J'ai bien-sur crée un DSN et j'utilise le drivers libmdbodbc.so

Le problème et que malgré ma requéte sql je n'est rien qui s'affiche ( page blanche sur le navigateur Firefox et erreur sur IE)

Erreur =
Code:

Warning: odbc_connect() [function.odbc-connect]: SQL error: Failed to fetch error message, SQL state HY000 in SQLConnect in /var/www/index2.php on line 3

Warning: odbc_exec(): supplied argument is not a valid ODBC-Link resource in /var/www/index2.php on line 12
HY000




J'essaye avec 2 code différent je vous les marque


le 1er :

Code:
<?php
//Création de la connection :
$connexion = odbc_connect('baseAccessExemple','','');
//Pas de login/password sauf si tu veux te casser un peu la tête et que tu as protégé ta base
//de cette façon !

//La requête à executer :
$query = "SELECT * FROM LigneCdeClient";
//Attention : Pas de ';' à la fin de la chaine de la requête.

//Execution :
$result = odbc_exec($connexion , $query) or die(odbc_error());

//Récuperation des résultats dans un tableau $item['nom_du_champ'] :
while ($items = odbc_fetch_array($result))
{
echo ''. odbc_result($query,"CodeTiers") .'';
}

//Libération des résultats :
odbc_free_result($result);

?>




Le 2nd :

Code:

<html>
<head>
<title>Title here!</title>
</head>
<body>
<?php
$bd="baseAccessExemple"; // identifiant dsn
$user=""; // login
$password=""; // password
$cnx = odbc_connect( $bd , $user, $password );
//$cnx = odbc_connect( $bd,'','' );
if( ! $cnx ) echo "Impossible de se connecter";

$sql= "SELECT * FROM LigneCdeClient where LigneSoldee=0";
$requete = odbc_exec($cnx, $sql);
if (!$requete) Error_handler( $text_error_structure , $cnx );

while(odbc_fetch_array($requete))
{

echo '<p>'.odbc_result($requete,"CodeTiers").' '. odbc_result($requete,"DateDocument").' '.odbc_result($requete,"CodeArticle").' '.odbc_result($requete,"TypeLigne").'</p>';
}
odbc_close($cnx);

?>


</body>
</html>




Fichier odbc.ini :

Code:
[baseAccessExemple]
Description = Base Access
Driver = /usr/lib/libmdbodbc.so.0.0.0
Database = /home/APISOFT/GEST_EXP/SOC01/GestC.mdb




Voila je ne comprend pas trop le problème.
En espérant que quelqu'un puisse m'aider...

edit jehv : censure HTML

[ Ce Message a été édité par: jehv le 2009-07-07 11:31 ]
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 08-07-2009 16:42

Svp cela est trés urgent...
profil | edit | quote
clanger
Inscrit le 04-04-2007
Posté le 08-07-2009 17:53

Quote:
Warning: odbc_connect() [function.odbc-connect]:
SQL error: Failed to fetch error message,
SQL state HY000 in SQLConnect in /var/www/index2.php on line 3


Ceci indique que la connexion à la base de données ne s'est pas faite.

Pourquoi ? Juste des pistes: cela peut aussi bien venir de PHP (problèmes d'installation, de configuration, d'autorisations, ...), de la mauvaise configuration du fichier de définition donnant accès à la base de donnée, de la localisation de la base de données ou de son fichier de définition, ou encore des droits d'accès fichiers à la base de donnée...
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 09-07-2009 10:00

Merci de m'avoir répondu.

La base de donnée se trouve sur un autre PC (windows) donc j'ai fait un mount avec samba.

J 'ai fait un chmod 777 sur la base de donnée et j'utilise il me semble le bon drivers donc je ne comprend pas trop d'où viens le problèmes.

Quand je fait une page php avec dedans

Code:
<?php phpinfo(); ?>


Il me marque bien Mdbtools
je vous fait un copier coller.

" mdbtools

MDB data file access library

Version 1.0.0stable (2007-11-27)

Authors:

Hartmut Holzgraefe <hartmut@php.net> (lead)

"
profil | edit | quote
Shiva
Inscrit le 14-07-2002
Afficher/Masquer
shiva31
Inscrit le 20-05-2009
Afficher/Masquer
clanger
Inscrit le 04-04-2007
Posté le 09-07-2009 18:34

Quote:
as-tu une idée pour mon problème? Je commence a désespérer la

Que donnent les pistes précédemment indiquées ?
profil | edit | quote
jehv
Inscrit le 29-08-2006
Posté le 09-07-2009 18:38

essaie avec un mot de passe different de rien_du_tout
_________________________
it's all about life
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 10-07-2009 14:20

"Pourquoi ? Juste des pistes: cela peut aussi bien venir de PHP (problèmes d'installation, de configuration, d'autorisations, ...), de la mauvaise configuration du fichier de définition donnant accès à la base de donnée, de la localisation de la base de données ou de son fichier de définition, ou encore des droits d'accès fichiers à la base de donnée..."


Donc le problème ne vient pas de php., pas des autorisation (chmod 777), pas de la configuration odbc .

La BDD se trouve sur un poste windows du réseau donc j'ai fait un mount avec samba.

et en mettant un MDP cela ne change rien...

Je désespère .. sa fait 2 mois que j'essaye de réglé ce probléme
profil | edit | quote
clanger
Inscrit le 04-04-2007
Posté le 10-07-2009 16:18

Quote:
Donc le problème ne vient pas de php


phpinfo indique-t-il la prise en charge d'ODBC ?

Quote:
pas des autorisation (chmod 777)


Et les safe_mode... ? (un chmod 777 ne signifie pas que le fichier soit accessible avec les droits utilisateur du serveur web). Sans compter qu'il y a une gestion des verrous avec smb/cifs, que les droits d'accès (unix, acl) posés sur le système distant interviennent aussi...

Il serait en tout cas préférable dans un premier temps de travailler sur un système local avant de passer à un système réseau.

Quote:
pas de la configuration odbc

C'est vite dit...

Où les fichiers de configuration d'odbc sont-il placés ? Que contiennent-ils ? Y a-t-il lecture de ces fichiers ?
Où est placé le fichier odbc de description de la base de donnée ? Y a-t-il lecture de ce fichier lorsque l'on passe par php ?
Des paramètres odbc sont-ils définis dans le fichier php.ini, et si oui le sont-ils correctement ?
Pouvez-vous accéder à la base de donnée en utilisant les utilitaires odbc directement sans passer par php ?

Quote:
sa fait 2 mois que j'essaye de réglé ce probléme

effectivement ça fait très long, c'est à priori le genre de problème qui devrait se régler en 1 jour.
profil | edit | quote
jehv
Inscrit le 29-08-2006
Posté le 11-07-2009 17:36

Quote:
La base de donnée se trouve sur un autre PC (windows) donc j'ai fait un mount avec samba.

enfin ca me rassure qu'il y a des gens encore plus naze que moi en DB , parce que meme avec des lunettes je voit pas les parametres de connexion.

you loose.
_________________________
it's all about life
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 13-07-2009 10:34

Bah il y a le DSN .

De quel paramètre de connexion parle tu?
profil | edit | quote
clanger
Inscrit le 04-04-2007
Posté le 13-07-2009 16:53

Ça fonctionne sous Debian Lenny, mais ça manque de stabilité (que ce soit avec les fonctions odbc_...() ou bien avec les fonctions PDO...).

Il faut configurer les fichiers /etc/odbcinst.ini et /etc/odbc.ini convenablement, et rendre la base de données accessible sous l'uid utilisé par le serveur web.
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 13-07-2009 17:43

J'ai donc fait un chown -cvR 33 /dossier/

sur le dossier contenant ma BDD se qui a donc mit en propriétaire www-data

mon fichier odbc.ini :

Code:

[baseAccessExemple]

Description = baseAccessExemple

Driver = /usr/lib/libmdbodbc.so.0.0.0

Database = /home/APISOFT/GEST_EXP/SOC01/GestC.mdb


Je pense l'avoir bien configurer... non?

[ Ce Message a été édité par: shiva31 le 2009-07-13 17:44 ]
profil | edit | quote
clanger
Inscrit le 04-04-2007
Posté le 13-07-2009 18:42

Quote:
J'ai donc fait un chown -cvR 33 /dossier/
sur le dossier contenant ma BDD se qui a donc mit en propriétaire www-data



C'est tout le chemin d'accès qu'il faut contrôler pour accéder à /home/APISOFT/GEST_EXP/SOC01/GestC.mdb

Code:
ls -ld /home /home/APISOFT /home/APISOFT/GEST_EXP /home/APISOFT/GEST_EXP/SOC01 /home/APISOFT/GEST_EXP/SOC01/GestC.mdb


La commande précédente doit indiquer que l'accès complet est possible, et il est inutile de positionner l'uid du répertoire à www-data (cela constitue toujours un risque pour la sécurité de la base de données.

PS: Le fichier de configuration il me parait correct.
profil | edit | quote
shiva31
Inscrit le 20-05-2009
Posté le 15-07-2009 10:32

Cela n'a pas réglé le problème :


Code:
drwxr-xr-x 5 www-data root      4096 jui 15 09:59 /home
drwxrwxrwx 1 root root 0 jui 1 14:13 /home/APISOFT
drwxrwxrwx 1 root root 0 jui 10 16:30 /home/APISOFT/GEST_EXP
drwxrwxrwx 1 root root 0 jui 15 09:03 /home/APISOFT/GEST_EXP/SOC01
-rwxrwSrwx 1 root root 651759616 jui 15 2009 /home/APISOFT/GEST_EXP/SOC01/GestC.mdb



Sous firefox cela m'affiche une page blanche et sous internet explorer cela me fait que pour les page voulant se connecter au la base de donée access, pour le reste cela marche

screen:




Voila je ne pense pas que le problème viens des droits sur le fichier non?

Je dois avoir réussir a le faire marcher obligatoirement avant demain... quelqu'un a une idée?
profil | edit | quote
clanger
Inscrit le 04-04-2007
Posté le 15-07-2009 15:32

Les droits sur le fichier et son chemin sont corrects.

Maintenant, comme je le disais mdbtools ne me semble pas très stable.

Que donnent les logs du serveur web (apache je suppose) ?
N'y aurait-il pas dans le fichier error.log une ligne comme "[notice] child pid XXX exit signal Segmentation fault (11)" ?

Ou bien encore, que donne index3.php en ligne de commande: php ./index3.php ?
Celui-ci se termine-t-il par une erreur de segmentation ?

L'accès direct via les mdbtools fonctionne-t-il ?
Code:

mdb-sql /home/APISOFT/GEST_EXP/SOC01/GestC.mdb

1 => list tables
2 => go

1 => select * from CHOISIR_UNE_TABLE
2 => go

1 => quit


profil | edit | quote
Newtopic | Reply

Online : Alonzorot, KennethWeshy, Lancepef, Mndsfmainna, MuratOn, MyronGot, RandyMycle, Robertrow, Rodneyhor, RolandoEluby, Stephendrure, Tizgarfum et 87 Guests


Retour Index NewFFR Repository : http://taz.newffr.com
Cagades à Stick : http://alcane.newffr.com
Forum HTML et Archive -> ici
ForumFR Sql/Xml (2006/04) (SF pas à jour du tout...) - Alive since 2001 Newffr.com
Pour toute plainte ou problème -> Contacter Borax, Hyatus, Tweakie ou Stick par message privé (ou Gueulez sur le forum :) )
Retour haut de page