Heim Backend-Entwicklung PHP-Tutorial Linux下PHP连接MS SQLServer的办法_PHP

Linux下PHP连接MS SQLServer的办法_PHP

Jun 01, 2016 pm 12:29 PM
sqlserver Weg 安装 数据库 文件 连接 配置

SQL Server

提出问题

前几天做了一个非常奇怪的项目,我公司开发了一套基于中国联通SGIP协议的SP端短消息服务软件,提供联通130短信服务。这套系统是Windows 2000下的,数据库采用的是微软SQLServer2000,并且已经正常运行了一段时间。而最近由于要在WEB上提供短消息用户的一些信息,就需要从WEB上读写SQLServer数据库,本来SQLServer数据库的最佳搭档应该是微软IIS ASP服务端脚本,但我公司一向认为IIS ASP的稳定性和安全性都不尽如意,希望能够在Linux下用PHP脚本读写SQLServer。

分析问题

本来PHP脚本读写SQLServer是没有什么问题的,在Apache for windows和Windows IIS下可以工作的很好,一般可以通过ODBC或SQLServer Client连接,这都是Windows下面现成的。但是在Linux下面没有现成的ODBC和SQLServer Client,需要我们自己安装。

解决问题

一、相关软件

freetds 来源:ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz

这个软件能够用Linux和Unix连接MS SQLServer和Sybase数据库。

二、安装配置步骤

第一步:编译安装freetds:

得到freetds-0.53.tgz后

cp freetds-0.53.tgz /tmp/. (拷贝freetds包到/tmp目录)

cd /tmp (进入目录)

tar zxvf freetds-0.53.tgz (解压)

cd freetds-0.53 (进入解压后目录)

./configure –prefix=/usr/local/freetds --with-tdsver=7.0

gmake (生成Makefile,我试验过,make也可以)

gmake install (安装)

关于上面configure我想说一下,--prefix=/usr/local/freetds是指安装到/usr/local/freetds这个目录中,--with-tdsver=7.0是指安装tds 7.0版本(最开是我没有加这个编译参数,结果按照默认编译为5.0。5.0连接数据库的端口是4000,不是SQLServer的1433)

第二步:重新编译PHP4

./configure [--with-apxs --with-mysql...] --with-sybase=/usr/local/freetds(请注意是sybase)

make

make install

第三步:配置freetds

vi /usr/local/freetds/etc/freetds.conf

具体配置见该文件中的说明

例: (典型配置)

[sqlserver]

host = sql_server_name_or_host_ip (你的SQLServer机器名字或者IP地址)

port = 1433

tds version = 7.0

在这个配置文件中可以配置Windows域登陆或者SQLServer账号登陆两种方式

第四步:配置php.ini文件

找到 ;extension=mssql70.so

将注释;去掉成

extension=mssql70.so

第五步:在php中建立数据库连接

$link=mssql_connect("sqlserver",$your_username,$your_password) or die (“can’t Connect to Database”);

echo $link;

在浏览器中运行上面脚本, 如果你得到一个link号那么恭喜,你已经配置好了,如果出现Call to undefined function: mssql_connect() 那说明仔细看上面的安装配置过程看你哪一步没有对。

注意:sqlserver名称是在/usr/local/freetds/etc/freetds.conf中定义的host参数,如果你写的IP地址,就是IP地址。

其他数据库操作参考相关mssql函数

注意,在sql语句中不支持中文!!!

第六步:调试

如果出现不能连接,请在freetds配置文件中找到;dump file = /tmp/freetds.log这一行,注释掉前面的分号,再执行一下测试脚本,察看/tmp/freetds.log文件,它可以告诉你很多出错的信息帮助你排除问题。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So importieren Sie eine MDF-Datei in SQL Server So importieren Sie eine MDF-Datei in SQL Server Apr 08, 2024 am 11:41 AM

So importieren Sie eine MDF-Datei in SQL Server

Wie lösche ich SQL Server, wenn die Installation fehlschlägt? Wie lösche ich SQL Server, wenn die Installation fehlschlägt? Apr 05, 2024 pm 11:27 PM

Wie lösche ich SQL Server, wenn die Installation fehlschlägt?

Was ist der Unterschied zwischen MySQL- und SQLServer-Syntax? Was ist der Unterschied zwischen MySQL- und SQLServer-Syntax? Apr 22, 2024 pm 06:33 PM

Was ist der Unterschied zwischen MySQL- und SQLServer-Syntax?

Wo ist die Navicat-Datenbankdatei? Wo ist die Navicat-Datenbankdatei? Apr 23, 2024 am 10:57 AM

Wo ist die Navicat-Datenbankdatei?

Was soll ich tun, wenn SQL Server nicht gelöscht und nicht neu installiert werden kann? Was soll ich tun, wenn SQL Server nicht gelöscht und nicht neu installiert werden kann? Apr 05, 2024 pm 11:30 PM

Was soll ich tun, wenn SQL Server nicht gelöscht und nicht neu installiert werden kann?

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP

Der Umgang mit der SQLServer-Datenbank ist zu groß Der Umgang mit der SQLServer-Datenbank ist zu groß Apr 05, 2024 pm 11:09 PM

Der Umgang mit der SQLServer-Datenbank ist zu groß

So laden Sie den 360 Secure Browser auf Ihren Computer herunter So laden Sie den 360 Secure Browser auf Ihren Computer herunter Apr 12, 2024 pm 01:52 PM

So laden Sie den 360 Secure Browser auf Ihren Computer herunter

See all articles