Maison >développement back-end >tutoriel php >Guide complet pour connecter Microsoft MSSQL (serveur SQL) avec php

Guide complet pour connecter Microsoft MSSQL (serveur SQL) avec php

黄舟
黄舟original
2017-02-27 09:32:011937parcourir

Quand j'étudiais ezSQL, j'ai vu mssql_connect() et d'autres fonctions fournies par PHP pour se connecter à MSSQL. J'ai pensé que PHP, un langage de programmation open source et populaire dans le monde entier, devrait être facile à connecter aux données de Microsoft, mais en réalité lors de sa mise en œuvre, j'ai rencontré de nombreuses difficultés.

La version de php que j'ai téléchargée au début était la 5.93. Après l'avoir téléchargée et ajouté des variables d'environnement, etc. pendant une longue période, la fonction phpinfo() s'est finalement exécutée avec succès dans le navigateur. Ensuite, lorsque j'ai recherché php_mssql.dll partout dans le monde, j'ai découvert que mssql n'était plus supporté nativement dans les versions 5.3 et supérieures de PHP.

J'ai finalement trouvé les pilotes Microsoft 3.0 pour PHP pour SQL Server. Je pensais que les logiciels de Microsoft devraient être capables de le faire, mais j'étais impuissant de constater que SQLSRV30.EXE ne pouvait pas s'exécuter : "SQLSRV30.EXE n'est pas un programme win32 valide".

Après une longue recherche sur Internet, j'ai résumé les méthodes réalisables suivantes, mais avant cela, vous devez :

Configurer MICROSOFT SQL SERVER

1, téléchargez et installez le serveur SQL. Il existe désormais de nombreuses versions, allant de 2000 à 2008. Trouvez-en une et téléchargez-la vous-même.

2. Ouvrez le mode de connexion TCP/IP pour activer l'accès à distance à la base de données. Gestionnaire de configuration SQL Server -> Configuration réseau -> Protocoles -> TCP/IP activé

3. Ouvrez l'interface de gestion des données et ajoutez des utilisateurs et des bases de données.

4. Installez php et configurez le service IIS.

5. Ouvrez le fichier php.ini dans le dossier où se trouve php et ajoutez :

mssql.textlimit = 20971520
mssql.textsize = 20971520

Après cela, vous pouvez suivre les trois méthodes suivantes pour vous connecter. à la base de données Déjà :

Utilisez la méthode fournie avec php pour vous connecter à MSSQL (non applicable aux versions 5.3 et ultérieures)

Assurez-vous qu'il y a php_mssql.dll dans la bibliothèque d'extension php ext dossier, puis dans PHP.ini Dans la configuration, supprimez le ";" devant

;extension=php_mssql.dll

.
Ensuite, vous pouvez tester la connexion :

//连接MSSQL
$conn=mssql_connect("实例名或者服务器IP","用户名","密码");

//测试连接
if($conn)
{
 echo "连接成功";
}

Pilotes Microsoft pour SQL Server pour PHP
En juillet 2008, Microsoft a publié un nouveau pilote pour php Le pilote qui se connecte à SQL Server améliore certaines des lacunes de la fonction MSSQL fournie avec PHP et est développée sous la forme d'un plug-in d'extension PHP Grâce à lui, vous pouvez facilement lire et écrire des bases de données Microsoft avec PHP.

Si votre serveur utilise IIS, vous devez le télécharger à partir d'ici :

http://php.iis.net/

Parce que le lien ci-dessus est en fait une plate-forme de développement réseau intégrée par Microsoft. Elle fournit uniquement une installation en ligne, mais elle intègre facilement les plug-ins PDO et php. Bien sûr, il existe également d'autres fonctions de développement de Microsoft, mais si vous n'en avez pas besoin. pas besoin de l'installer, ceux-ci sont dans Visual Studio.

Mais si vous utilisez Apache, vous pouvez aller ici pour télécharger directement ce plug-in. Il s'agit en fait d'un fichier décompressé, et plusieurs fichiers DLL sont décompressés. Les opérations spécifiques sont les suivantes :

1 ) Téléchargez le package de pilotes : http://www.microsoft.com/en-us/download/details.aspx?id=20098.

2) Extrayez la DLL dans le répertoire PHP extension_dir, s'il indique que SQLSRV30.EXE n'est pas un programme win32 valide, il se peut que certaines bibliothèques soient manquantes, qu'il s'agisse de vc10 ou qu'il ne soit pas exécuté avec les autorisations d'administrateur.

extension_dir = “C:\PHP\ext”

Guide complet pour connecter Microsoft MSSQL (serveur SQL) avec php

3) Référencez le fichier de bibliothèque de liens dynamiques correspondant dans le fichier de configuration php.ini

extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
extension=php_pdo.dll

Les 52 et 53 représentent les versions 5.2.x et 5.3.x de php Choisissez celle qui correspond à votre version de php

Le choix de vc6 ou vc9 dépend principalement de ce que vous utilisez ; . Pour le logiciel de serveur Web, si vous utilisez IIS, choisissez vc9, si vous utilisez Apache, choisissez vc6.

En ce qui concerne ts et nts, cela dépend si la version de PHP que vous avez installée est thread-safe ou non. ts est thread-safe et nts n'est pas thread-safe.
4) Redémarrez Apache
5) Connectez-vous à la base de données
Testez le code de connexion :

<?php
//本地测试的服务名
"(local)";
//使用sql server身份验证,参数使用数组的形式,一次是用户名,密码,数据库名
//如果你使用的是windows身份验证,那么可以去掉用户名和密码
$connectionInfo = array( "UID"=>"root",
    "PWD"=>"root2010",
    "Database"=>"master");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
 echo "Connection established.\n";
}
else
{
 echo "Connection could not be established.\n";
 die( print_r( sqlsrv_errors(), true));
}
 ?>

Utilisez FreeTDS sous Windows

Qu'est-ce que FreeTDS ? FreeTDS est en fait une bibliothèque de programmes C open source (ou gratuite) qui peut accéder et exploiter la base de données SQL de Microsoft sous un système Linux. Il peut être utilisé dans la bibliothèque db-lib ou ct-lib de Sybase, qui contient également une bibliothèque ODBC. Permet à de nombreuses applications de se connecter aux serveurs Sybase ou Microsoft SQL. FreeTDS est publié sous forme de code source et, de ce fait, il peut être compilé et installé sur presque tous les systèmes.

Si votre serveur est un système Windows, vous devez utiliser php_dblib.dll. (plus d'informations sur l'utilisation de FreeTDS pour Unix.)

Habituellement, nous pouvons trouver ces fichiers DLL sur ce site Web - le site de Frank Kromann, mais il est fondamentalement obsolète et causera beaucoup de problèmes, nous vous recommandons donc d'utiliser Version PHP 5.2.x sous Windows, et jetez un œil aux suggestions suivantes :

1. Suivez le tableau ci-dessous pour télécharger php_dblib.dll et enregistrez-le dans le dossier /PHP/ext.

tr>


PHP versionThread SafeFreeTDS versionDownload URLPHP 5.2.x (vc6)Yes0.82 + 20090302 patchesDownload!No0.82 + 20090302 patchesDownload!PHP 5.3.x (vc9)Yes0.82 + 20090904 patchesDownload!No0.82 + 20090904 patchesDownload!PHP 5.4.x (vc9)Yes0.82 + 20110906 patchesDownload! FTP Download!No0.82 + 20110906 patchesDownload! FTP Download!2、 FreeTDS 需要安装 .NET Framework v1.1 ,你可以到微软的网站去下载。或者你去Frank's site 下载需要的DLL文件,并保存到你的/PHP根目录下面。

3、在php配置文件 /PHP/php.ini 中添加:

extension=php_dblib.dll

4、当php引擎启动FreeTDS模块的时候需要传递一些信息,使得FreeTDS能够连接到它的默认的数据库。因此它的需要在freetds.conf中定义数据库连接的基本信息,该文件在其根目录下,可以按照你的情况来进行修改:

[global]
host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)
port = 1433
client charset = UTF-8
tds version = 8.0
text size = 20971520

5、创建config.php文档来定义数据库连接参数:

$CFG->dbtype = &#39;mssql&#39;; // Required
$CFG->dbhost = &#39;localhost&#39;; // assuming MS SQL is on the same server, otherwise use an IP
$CFG->dbname = &#39;moodle&#39;;  // or whatever you called the database you created
$CFG->dbuser = &#39;yourusername&#39;; // I usually use the &#39;sa&#39; account (dbowner perms are enough)
$CFG->dbpass = &#39;yourpassword&#39;;
$CFG->dbpersist = false;
$CFG->prefix = &#39;mdl_&#39;;  //Prefix, you can change it, but NEVER leave it blank.

6、 重启你的网站,如果还是没有连接到你的数据库的话,在 /PHP/php.ini文件中将display_startup_errors改为"On",当你解决了这些问题之后再将错误报告改为“Off”;

7、测试你的网站,建立test.php文件,代码如下,访问http://www.php.cn/进行测试

<?php
	$link = mssql_connect(&#39;localhost&#39;, &#39;db_user&#39;, &#39;db_password&#39;);
	if(!$link) {
		echo&#39;Could not connect&#39;;
		die(&#39;Could not connect: &#39; . mssql_error());
	}
	echo&#39;Successful connection&#39;;
	mssql_close($link);
?>

 以上就是php连接微软MSSQL(sql server)完全攻略 的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn