gilles_906 Posté(e) le 1 décembre 2012 Posté(e) le 1 décembre 2012 Bonjour, J'ai un 713+, j'aurai besoin que mes fichiers php puisse se connecter a SQL Serveur. Pour cela je pense (corrigez moi si je me trompe) qu'il n'est possible de le faire qu'avec une connexion ODBC. Ma question est donc comment installer les drivers ODBC sur mon synology. Quelqu'un a t il un tuto, un lien. Merci d'avance PS: Soyez indulgent je débute. 0 Citer
Sp@r0 Posté(e) le 1 décembre 2012 Posté(e) le 1 décembre 2012 5 seconde de recherche sur google ... la fonction php s'appelle mssql_connect par contre je ne sais pas si elle est incluse dans le php du syno ... 0 Citer
PiwiLAbruti Posté(e) le 1 décembre 2012 Posté(e) le 1 décembre 2012 L'extension mssql pour PHP a été ajouté dans le DSM 4.1, elle permet effectivement de se connecter à une base de données SQL Server. Pour son utilisation, il suffit de suivre la documentation officielle. 0 Citer
gilles_906 Posté(e) le 1 décembre 2012 Auteur Posté(e) le 1 décembre 2012 (modifié) Merci de ta réponse Si, elle est incluse dans le php du syno, je l'avais vu, par contre il me semble qu'elle est obsolette à partir de php5.3 et a été remplacé par sqlsvr, c'est pour ca que je n'ai pas regardé de son coté. voir ici: http://stackoverflow...g-as-of-php-5-3 sqlsvr lui n'a pas de driver linux. Il me reste donc ODBC, d'ou m'a question. PS: j'ai passé beaucoup plus de 5s sur google avant de poster ma question EDIT: je viens de retrouver la doc qui confirme ce qu'il me semblait bien. http://php.net/manual/en/intro.mssql.php Modifié le 1 décembre 2012 par gilles_906 0 Citer
PiwiLAbruti Posté(e) le 1 décembre 2012 Posté(e) le 1 décembre 2012 This extension is not available anymore on Windows with PHP 5.3 or later. Elle n'est pas obsolète sinon ce serait marqué dans la documentation de PHP. C'est juste que l'extension SQL Server est maintenant fournie par Microsoft mais pour Windows uniquement PHP laisse donc Microsoft gérer cette extension et ne maintient plus les versions Windows de mssql. Pour tous les autres systèmes (non Microsoft donc), il faut utiliser l'extension mssql fournie par PHP. As-tu essayé de connecter PHP à SQL Server avec mssql ? 0 Citer
gilles_906 Posté(e) le 1 décembre 2012 Auteur Posté(e) le 1 décembre 2012 (modifié) Ok super alors. non je n'ai meme pas essayé pensant qu'elle était obsolete. J'essaye et je te tiens au courant Merci Modifié le 1 décembre 2012 par gilles_906 0 Citer
gilles_906 Posté(e) le 1 décembre 2012 Auteur Posté(e) le 1 décembre 2012 (modifié) Bon ben j'ai essayé comme cela: $server='xxx.xxx.xxx.xxx:1433'; $conn = mssql_connect($server,'MonLogin','pass'); voila ce que cela donne Warning: mssql_connect(): Unable to connect to server: xxx.xxx.xxx.xxx:1433 in /volume1/web/Android/essai.php on line 5 et voila comment sql server reponds dans le fichier log 12/01/2012 17:35:36,,Inconnu,Erreur : 17832<c/> Gravité : 20<c/> État : 15. 12/01/2012 17:35:36,,Inconnu,The login packet used to open the connection is structurally invalid; the connection has been closed. Please contact the vendor of the client library. [CLIENT : 192.168.0.1] Des avis sur la question? EDIT: Comment puis je faire pour acceder au fichier php.ini? Modifié le 1 décembre 2012 par gilles_906 0 Citer
gilles_906 Posté(e) le 3 décembre 2012 Auteur Posté(e) le 3 décembre 2012 Bonjour Personne n'a d'idée sur mon problème? cela fait trois jours que je cherche 0 Citer
Patrick21 Posté(e) le 3 décembre 2012 Posté(e) le 3 décembre 2012 Bonjour je ne sais pas si tu es sur la bonne voix pour moi il n'y a pas de problème de se connecter à une base on utilise sur nos synos de nombreux cms comme joomla, wordpress, prestashop etc..... ils sont tous développés en php et on une base sql Patrick 0 Citer
gilles_906 Posté(e) le 3 décembre 2012 Auteur Posté(e) le 3 décembre 2012 merci de ta réponse Patrick Mais je pense que tu parles de Mysql comme base, je parle moi de Sql Server Normalement le driver mssql devrait me permettre la connexion, sauf qu’apparemment ils n'envoie pas le bon format pour le couple (login pass) 0 Citer
PiwiLAbruti Posté(e) le 3 décembre 2012 Posté(e) le 3 décembre 2012 12/01/2012 17:35:36,,Inconnu,The login packet used to open the connection is structurally invalid; the connection has been closed. Please contact the vendor of the client library. [CLIENT : 192.168.0.1] Quelle version de SQL Server utilises-tu ? mssql n'est apparemment plus compatible avec les versions récentes de SQL Server. J'ai testé la chose et j'ai obtenu les mêmes résultats que toi. À ta place, je contacterais le support Synology pour savoir s'ils ont testé cette extension, car en cherchant (un peu) je n'ai trouvé personne n'ayant réussi à la faire fonctionner. 0 Citer
gilles_906 Posté(e) le 3 décembre 2012 Auteur Posté(e) le 3 décembre 2012 Merci de ton aide également Piwi même si je n'aime pas ta réponse j'ai bien peur que tu ai raison. j'utilise sql server 2012 express A force de chercher, je suis tombé sur FreeTDS qui apparament est un driver odbc, quelqu'un l'a t il installé sur un syno? ca marche? Je vais poser la question au support, on ne sais jamais. 0 Citer
Patrick21 Posté(e) le 3 décembre 2012 Posté(e) le 3 décembre 2012 merci de ta réponse Patrick Mais je pense que tu parles de Mysql comme base, je parle moi de Sql Server Normalement le driver mssql devrait me permettre la connexion, sauf qu’apparemment ils n'envoie pas le bon format pour le couple (login pass) meaculpa je sors désolé Patrick 0 Citer
psuken Posté(e) le 4 décembre 2012 Posté(e) le 4 décembre 2012 (modifié) Bonjour, As-tu regardé du côté de la classe PDO ? A priori la connexion à MSSql est encore "expérimentale" mais ca peut éventuellement répondre à ton besoin. http://php.net/manual/fr/intro.pdo.php http://php.net/manua...f.pdo-dblib.php Modifié le 4 décembre 2012 par psuken 0 Citer
gilles_906 Posté(e) le 4 décembre 2012 Auteur Posté(e) le 4 décembre 2012 (modifié) Bonjour psuken, merci de t' interresser a mon problème. Pour pdo il n'y a pas grand chose d'installé dans la version php que j'ai sur mon syno (la 4.1 - 2661) php version 5.3.15 En fait il n'y a que pdo_mysql Si effectivement mssql est "expérimentale" il ne me reste de FreeTDS d'ailleurs ton deuxième lien parle de lui. D'aprés ce que j'ai compris les drivers pdo sont a l'intérieur de la bibiotheque FreeTDS. Es t il possible d'installer FreeTds sur mon syno (713+) si oui comment. Merci Modifié le 4 décembre 2012 par gilles_906 0 Citer
psuken Posté(e) le 4 décembre 2012 Posté(e) le 4 décembre 2012 (modifié) A ta place j'essayerai quand même d'installer le PECL PDO http://pecl.php.net/package/PDO_DBLIB : This extension provides a FreeTDS/Sybase/MSSQL driver for PDO. En ce qui concerne FreeTDS, jette un coup d'oeil sur le manuel : http://freetds.schem...ide/install.htm In the case of a library package such as FreeTDS To install the package is to copy the files the application developer will use to their canonical locations: header files to include, libraries to the lib, documentation and man pages share. Modifié le 4 décembre 2012 par psuken 0 Citer
gilles_906 Posté(e) le 4 décembre 2012 Auteur Posté(e) le 4 décembre 2012 merci le soucis c'est comment faire pour l'installer sur le syno? je ne connais pas la procedure 0 Citer
gilles_906 Posté(e) le 5 décembre 2012 Auteur Posté(e) le 5 décembre 2012 Bonjour Voila ou j'en suis: J'ai installé ipkg j'ai chargé et installé freetds avec ipkg Maintenant je suis a la recherche du fichier freetds.conf, quelqu'un sais t'il ou il se trouve sur le syno? Bizarrement je ne trouve pas non plus le dossier freetds, pourtant il est bien installé. Faut il rajouter une adresse a monter (comme pour ipkg)? Merci de votre aide par avance 0 Citer
gilles_906 Posté(e) le 5 décembre 2012 Auteur Posté(e) le 5 décembre 2012 Me revoilà pour vous donner la réponse du service technique de Synology: The developer found if we added "putenv("FREETDSCONF=/usr/syno/etc/freetds.conf");" at the opening in the /volume1/web/test.php. It will work fine. Therefore, we will key in this feature into our feature request database for our developer to do future analysis and evaluation. So it may have chance to be supported in the future DSM releases. J'avoue que je n'ai pas bien compris ce qu'il voulait dire. Sauf qu'il fallait attendre la prochaine version 0 Citer
PiwiLAbruti Posté(e) le 5 décembre 2012 Posté(e) le 5 décembre 2012 Apparemment ça fonctionne en procédant comme suit : créer un fichier freetds.conf dans /usr/syno/etc/ créer la variable d'environnement FREETDSCONF en ajoutant la ligne suivante au début du script PHP : putenv("FREETDSCONF=/usr/syno/etc/freetds.conf"); Y a plus qu'à tester. 0 Citer
gilles_906 Posté(e) le 5 décembre 2012 Auteur Posté(e) le 5 décembre 2012 Ben j'ai testé et ca marche pas N'y a t'il pas quelque chose a faire comme activer freetds ou autre? Parce que je l'ai juste installé avec IPKG c'est tout 0 Citer
gilles_906 Posté(e) le 6 décembre 2012 Auteur Posté(e) le 6 décembre 2012 Bonjour, Me revoila pour vous donner des nouvelles. Le service tech de Syno m'a envoyé le fichier freetds.conf, ce n'est pas le meme que celui qu'installe ipkg. Et maintenant ca marche pour ceux que ca interresse voila le fichier, il faut renseigner l'adresse du pc (ici 192.168.0.90) qui contient sql server. En rouge ce qu'il manque dans freetds.conf # $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $ # # This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For information about the layout of this file and its settings, # see the freetds.conf manpage "man freetds.conf". # Global settings are overridden by those in a database # server specific section [global] # TDS protocol version ; tds version = 4.2 # Whether to write a TDSDUMP file for diagnostic purposes # (setting this to /tmp is insecure on a multi-user system) ; dump file = /tmp/freetds.log ; debug flags = 0xffff # Command and connection timeouts ; timeout = 10 ; connect timeout = 10 # If you get out-of-memory errors, it may mean that your client # is trying to allocate a huge buffer for a TEXT field. # Try setting 'text size' to a more reasonable limit host = 192.168.0.90 port = 1433 tds version = 7.0 text size = 64512 # A typical Sybase server [egServer50] host = symachine.domain.com port = 5000 tds version = 5.0 # A typical Microsoft server [egServer70] host = 192.168.0.90 port = 1433 tds version = 7.0 Merci à tous ceux qui ont participé à cette discussion. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.