lorsque j'ai soulevé la question
. Notre société a développé un ensemble de logiciels de service de messages courts côté SP basés sur le protocole SGIP de China Unicom pour fournir le service SMS China Unicom 130. Ce système fonctionne sous Windows 2000. La base de données utilise Microsoft SQLServer2000 et fonctionne normalement depuis un certain temps. Récemment, afin de fournir certaines informations aux utilisateurs de messages courts sur le WEB, il est nécessaire de lire et d'écrire la base de données SQL Server à partir du WEB. À l'origine, le meilleur partenaire de la base de données SQL Server devrait être le script du serveur Microsoft IIS ASP, mais. notre entreprise a toujours pensé que IIS+ASP La stabilité et la sécurité ne sont pas satisfaisantes. J'espère utiliser des scripts PHP pour lire et écrire SQL Server sous Linux.
Analyse du problème
A l'origine, il n'y avait aucun problème avec la lecture et l'écriture des scripts PHP sur SQL Server. Il peut très bien fonctionner sous Apache pour Windows et Windows IIS. Généralement, il peut être connecté via ODBC ou SQLServer Client, qui sont tous prêts à l'emploi. sous Windows. Cependant, il n'existe pas de client ODBC et SQLServer prêt à l'emploi sous Linux et nous devons les installer nous-mêmes.
Résoudre le problème
1. Logiciels associés
freetds Source : ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Ce logiciel peut connecter les bases de données MS SQLServer et Sybase sous Linux et Unix.
2. Étapes d'installation et de configuration
Étape 1 : Compilez et installez freetds :
Après avoir obtenu freetds-0.53.tgz
, cp freetds-0.53.tgz /tmp/ (Copiez le package freetds dans le répertoire /tmp)
cd /tmp (entrez dans le répertoire. )
tar zxvf freetds- 0.53.tgz (décompressé)
cd freetds-0.53 (entrez le répertoire décompressé)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (générez un Makefile, je l'ai testé, make peut aussi le faire)
gmake install (Installation)
Je veux dire quelque chose à propos de la configuration ci-dessus. --prefix=/usr/local/freetds fait référence à l'installation dans le répertoire /usr/local/freetds. 7.0 fait référence à l'installation de la version tds 7.0 (la dernière version du problème est que je n'ai pas ajouté ce paramètre de compilation et que le résultat a été compilé en 5.0 par défaut. Le port pour 5.0 pour se connecter à la base de données est 4000, pas 1433 de SQL Server)
Étape 2 : Recompiler PHP4./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (veuillez noter qu'il s'agit de sybase)
make
make install
Étape 3 : Configurer freetds
vi /usr/local/freetds/etc/freetds.conf
La configuration spécifique peut être trouvée dans ce fichier Exemple de description
: (Configuration typique)
[sqlserver]
host = sql_server_name_or_host_ip (le nom de votre machine SQLServer ou l'adresse IP)
port = 1433
version tds = 7.0
Dans ce fichier de configuration, vous pouvez configurer deux méthodes de connexion au domaine Windows ou au compte SQLServer :
Configurez
le fichier php.ini
et recherchez : extension=mssql70.so
.
Étape 5 : Établissez une connexion à la base de données dans php
$link=mssql_connect("sqlserver",$your_username,$your_password) ou die (« impossible de se connecter à la base de données »);
exécutez
le script ci-dessus dans le navigateur Si. vous obtenez un numéro de lien, félicitations, vous l'avez configuré. Si Appel à une fonction non définie : mssql_connect() apparaît, alors Remarque : Lisez attentivement le processus d'installation et de configuration ci-dessus pour voir à quelle étape vous vous trompez.
Remarque : Le nom du serveur sql est le paramètre hôte défini dans /usr/local/freetds/etc/freetds.conf Si vous écrivez l'adresse IP, il s'agit de l'adresse IP.
Pour les autres opérations de base de données, reportez-vous aux fonctions mssql associées
. Notez que le chinois n'est pas pris en charge dans les instructions SQL !!!
Étape 6 : Débogage
, veuillez le trouver dans le fichier de configuration freetds, commentez la ligne dump file = /tmp. /freetds.log. Supprimez le point-virgule devant, exécutez à nouveau le script de test et vérifiez le fichier /tmp/freetds.log. Il peut vous fournir de nombreuses informations sur les erreurs pour vous aider à résoudre le problème.
(e129)