Comment faire pour se connecter à Sybase via PHP
Je suis en train d'essayer de se connecter à une base de données Sybase avec PHP5. Je crois que j'ai compilé PHP avec PDO_DBLIB
, comme phpinfo()
listes dblib
sous les drivers PDO, et freetds
comme le pdo_dblib
saveur.
Cependant, lorsque j'essaie de tester une connexion, j'obtiens une erreur de lecture:
'PDOException' with message 'impossible de trouver un pilote
Je suis en train d'essayer de se connecter à un serveur sur mon réseau local avec ce code:
$dbh = new PDO("sybase:host=192.168.1.xxx;dbname=[database-name]", '[user]', '[pass]');
Toutes les suggestions sont grandement appréciés!
Il semble que vous n'avez pas de pilote installé et activé dans php.ini, Vous pouvez essayer ce expérimentale pilote: php.net/manual/en/ref.pdo-dblib.php
OriginalL'auteur zwiebelspaetzle | 2013-01-18
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
dblib
au lieu desybase
, comme ceci:OriginalL'auteur Omar
AOP ne fonctionnerait pas, ou, au moins, il n'y a pas de PDO Sybase support de php. Sur Windows, vous pouvez utiliser ODBC, et PDO_SQLSRV ou PDO_ODBC, ça peut paraître bizarre, mais il devrait fonctionner.
Deuxième option et je le recommande, c'est de se connecter directement à Sybase (SqlAnywhere), mais vous avez besoin d'installer SQL Anywhere Module PHP
Je suis en train d'utiliser le SQL Anywhere Module PHP, mais quand j'ai démarrer httpd, j'obtiens cette erreur: "Le SQLAnywhere bibliothèques client n'a pas pu être chargé. Veuillez vous assurer que libdbcapi_r.donc, peut être trouvé dans votre variable d'environnement LD_LIBRARY_PATH." J'ai ajouté "SetEnv LD_LIBRARY_PATH /opt/sqlanywhere12/lib64" à mon httpd.fichier conf. Cependant, la fonction phpinfo affiche toujours l'Apache Environnement LD_LIBRARY_PATH /usr/local/apache2/lib. Toutes les suggestions?
Oui, sur votre machine doit être installée Sybase SqlAnywhere ou au moins SqlAnywhere client et cette bibliothèque doit être ajouté au chemin d'accès du système, voir "echo $PATH"
Merci pour la réponse. J'ai installé SQL Anywhere 12 Web edition, et libdbcapi_r.donc, est assis dans /opt/sqlanywhere12/lib64. J'ai ajouté
"/opt/sqlanywhere12/lib64"
de mon chemin d'accès système (il montre quand je "echo $PATH".) Cependant, j'obtiens toujours la même erreur de sqlanywhere. Je comprends que LD_LIBRARY_PATH est différent du système de chemin, mais je ne peux pas trouver un moyen de changer le LD_LIBRARY_PATH répertorié sous Apache Environnement de la fonction phpinfo(). L' /opt/sqlanywhere12/bin64/sa_config.sh le script ne semble pas affecter Apache. Est cette variable est en effet ce que j'ai besoin de changer? Merci Beaucoup!J'ai essayé d'utiliser le SQL Anywhere Module PHP avec PHP5 et Il semble que ce n'est pas possible. J'ai une erreur que le module et l'php est compilé avec différentes API des modules
OriginalL'auteur Zdenek Machek
Si vous utilisez Ubuntu, vous pouvez mettre la LD_LIBRARY_PATH à l'intérieur de envvars et il semble à la lecture... essaye toujours de trouver une façon de l'obtenir à coller sur RHEL les systèmes basés sur Windows... je ne suis pas trop sûr de, je l'espère, vous pouvez définir un système à l'échelle variable, sous
Si utilisez RHEL en fonction des systèmes, il pourrait être préférable d'inclure le:
export LD_LIBRARY_PATH=/chemin/vers/bibliothèque/ dans le httpd restart script (à vérifier pour voir si il charge /etc/sysconfig/httpd et si oui, ajoutez la ligne là - maintenant, redémarrez apache et vous devriez voir une certaine activité.
OriginalL'auteur YFP