php连接mssql端口(php怎么连接sql server 2012)

本文目录
- php怎么连接sql server 2012
- pHP链接数据库报错Warning: mssql_connect() [function.mssql-connect]: message: 用户 ’NT AUTHORITY\IU
- PHP+MS SQL怎么连接啊
- php 怎么连接sqlserver
- php怎么样连接sql数据库
- php怎么连接sql server
- php 怎么连接sqlserver 数据库
- 求大神详细讲解php连接mssql
- php怎样连接sqlserver数据库
- php连接sql2000问题
php怎么连接sql server 2012
1:PHP5.2.x本身有个php_mssql.dll的扩展用来连接Sql server,但是这个dll只是用来连接低版本 Sql server的(2000以下版本),在Sql server 2005及以上版本无法使用mssql_connect连接到数据库。
2:php5.3.x不再支持php_mssql.dll 拓展库了,及时使用php5.2.x中的php_mssql.dll也无法使用。 微软专门为PHP出了个SQL Server的扩展(Windows版本的),对于Windows下使用php开发SQL Server应用来说,这个扩展有利于利用SQL Server来开发php平台连接sql server数据库管理系统。
一、php5.3以下的版本连接sql server
5.3以下的版本扩展里面自带一个php_mssql.dll;接数据库的扩展,可以利用这个扩展链接数据库,(只限于链接低版本数据库)。
具体的步骤如下:
1:首先安装sql server,超级不好安装,我之前安装的是2008版本的,Windows过期后就不能用了,然后重装还装不上,最后重装系统才装上
2:确定SQL装的时候用的是混合认证模式,或SQL验证模式,然后打开php的配置文件(php.ini),开启mssql扩展 (extension=php_pdo_mssql.dll前面的分号去掉)并且需要把mssql.secure_connection = On 重启后生效。
如果比较顺利的话已经可以连接数据库了,如果连不上就需要继续低下的配置:
3: 检查ntwdblib文件的版本(php/下面和Apache/下面)下载正确的版本的 ntwdblib.dll(2000.80.194.0)覆盖现有的DLL文件,(把ntwdblib.dll,php_mssql.dll 复制到system32目录中也可以)ntwdblib.dll 用于PHP连接MSSQL2005或2008的驱动文件。
4:测试连接:mssql_connect(’localhost,1433’, ’用户名’, ’密码’);
二、php5.3+连接sql server
其 实5.3以下的php版本已经很少用了,况且安全性和兼容性都不好,所以高版本的php还是比较常见的。实践证明低版本的php连接数据库成功率比较低 (2005以上的版本几乎不能使用),推荐使用php5.3+ php使用微软专门的扩展 SQLSRV 来连接sqlserver数据库
步骤如下:
1:先到微软网站下载 SQL Server Driver for PHP 是一个自解压的 EXE文件,解压缩后你会得到这么几个文件:
其中的52、53表示就是php的5.2.x和5.3.x 版本,选择跟你php版本相匹配的;vc6或vc9的选择要看你使用的是什么web服务器软件,如果使用的是IIS那就选择vc9的,如果是Apache 则选择vc6的,ts和nts的选择要看你安装的php版本是线程安全版的还是非线程安全版,ts是线程安全,nts是非线程安全。
如果不知道可以在phpinfo里看Zend Extension Build这个属性如下图:
2:将扩展拷贝到拷到php/ext目录下,在php.ini文件,添加一下代码:
extension=在ext下的pdo扩展(用于pdo)
extension=在ext下的扩展
3:重启服务器,打开phpinfo();看到以下状态就证明添加扩展成功,
4:连接测试:
《?php $serverName = "(local)"; $connectionInfo = array("UID"=》"sa","PWD"=》"admin","Database"=》"db_online"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ){ echo "Connection established.\n"; }else{ echo "Connection could not be established.\n"; die( var_dump(sqlsrv_errors())); } sqlsrv_close( $conn); ?》
注意这里的连接不是用mssql_connect而是用sqlsrv_connect,在这个版本中,还有几个函数:
这个扩展为php新增了一系列sqlsrv_开头的函数,常用的如下:
sqlsrv_connect
sqlsrv_close
sqlsrv_commit
sqlsrv_errors
sqlsrv_fetch
sqlsrv_fetch_array
sqlsrv_fetch_metadata
sqlsrv_num_rows
sqlsrv_query
sqlsrv_rollback
sqlsrv_rows_affected
. . .
另外注意的是,如果使用这个扩展连接Sql server 2005以及以上版本的sql server(如sql server 2008),你还需要在机器上先安装 SQL Server Native Client
不然会出现如下错误:
array
0 =》array
0 =》string’IMSSP’(length=5)
’SQLSTATE’ =》string’IMSSP’(length=5)
1 =》int-49
’code’ =》int-49
2 =》string’This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86:
***隐藏网址***
(length=216)
’message’ =》string’This extension requires the Microsoft SQL Server 2008 Native Client. Access the following URL to download the Microsoft SQL Server 2008 Native Client ODBC driver for x86:
***隐藏网址***
(length=216)
1 =》array
0 =》string’IM002’(length=5)
’SQLSTATE’ =》string’IM002’(length=5)
1 =》int0
’code’ =》int0
2 =》string’ 未发现数据源名称并且未指定默认驱动程序’(length=71)
’message’ =》string’ 未发现数据源名称并且未指定默认驱动程序’(length=71)
解决方法:需要安装SQL Server 2008 Native Client ODBC Driver,下载安装文件sqlncli.msi,安装后就可以了。
pHP链接数据库报错Warning: mssql_connect() [function.mssql-connect]: message: 用户 ’NT AUTHORITY\IU
之前我刚遇到过这类问题。
使用php链接mssql出错,但是代码没有问题,本机测试正常,上传到服务器又不行。
如果是这种情况,请参照下面的步骤。
1、运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols
,允许命名管道 "named pipes" 和 "tcp/ip" ,右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses" ,在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433 (其实只要填0就表示开启了动态端口)
2、下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: ,覆盖 php\ntwdblib.dll (mssql2005,mssql2008等等对应的ntwdblib.dll文件版本不同,请参照自己的mssql版本下载对应文件。)
3、php.ini有个mssql的设置 mssql.secure_connection 改成 off。(我就因为这个弄了好久,ON的意思是使用安全连接,实际上是使用nt账户登录,并非使用mssql账户登录。一般我们远程连接都是使用mssql账户登录)
PHP+MS SQL怎么连接啊
这个版本在生成的时候,就“--without-mssql”关闭了MSSQL了,加扩展是加不进去的,你需要下载一个没有“--without-mssql”的版本(7.0.25这个版本就可以了),然后下载SQLSRV的dll,加到PHP里面,这时候,phpinfo就可以看到SQLSRV了,但是这时候,数据库连接的时候还是会失败,这时候,就需要下载个微软官网下载ODBC驱动了,然后就可以连上了,我也是搞了2天才搞起来。
php 怎么连接sqlserver
准备工作:SQLSRV20.EXE(PHP mssql扩展库)、php_mssql.dll文件。
安装PHP mssql扩展库:安装SQLSRV20.EXE,选择解压路径为:D:\wamp\bin\php\php5.2.9-2\ext。
修改php.ini配置文件:打开php.ini配置文件,将其中
;extension=php_mssql.dll
;extension=php_pdo_mssql.dll
前面的分号去掉,然后再”Dynamic Extensions”区域的后面添加php_sqlsrv的动态链接库文件: extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
注意事项:查看D:\wamp\bin\php\php5.2.9-2\ext目录下有也Php_mssql.dll文件。如果没有,则下载该文件,复制到该目录下。
***隐藏网址***
重启WAMP所有服务。
测试:编写一个简单的SQL SERVER2008数据库连接的测试程序。测试程序具体代码如下:
《?php
$server ="192.168.61.181"; //服务器IP地址,如果是本地,可以写成localhost
$uid ="sa"; //用户名
$pwd ="cwh"; //密码
$database ="UserMan"; //数据库名称
//进行数据库连接
$conn =mssql_connect($server,$uid,$pwd) or die ("connect failed");
mssql_select_db($database,$conn);
//执行查询语句
$query ="select * from users";
$row =mssql_query($query);
//打印输出查询结果
while($list=mssql_fetch_array($row))
{
print_r($list);
echo "《br》";
}
?》
查询结果演示:
php怎么样连接sql数据库
1、软件配置
Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2数据库,wamp2.2中的php版本是5.3.10。
Php环境也可以换成php+apache。
2、支持连接MySQL Server配置
php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以后的版本不支持。
2.1、php连接mssql设置(php5.3以前版本)
(1)、打开php.ini,将
;extension=php_mssql.dll前面的分号(;)去掉,然后重启 Apache。如果不行的话,进行第2步。
(2)检查一下你的php安装目录下的ext下面有没有php_mssql.dll存在,如果没有,从www.php.net重新下载一个php安装,要下载那个压缩包的才是最完整的。
如果ext目录下已经有了php_mssql.dll,那么你需要打开php.ini,找到
extension_dir = "./ext"
这一句(或者类似的,不一定是"./ext",查找"extension_dir"即可),然后把"./ext"修改为你的php安装目录的ext目录的完整路径,比如"c:/php/ext",或者"c:/program files/php/ext"这样。然后再次重启 Apache。如果还是不行的话,可能就需要第3步了。
(3)把 php 目录下的 ntwdblib.dll 和 php_mssql.dll 复制到 system32的系统目录中去,然后重起Apache。
(4)然后就可以连接MSSQL,并进行一些操作了。连接例子如下:
2.2、php连接sqlsrv(php5.3以及以上版本)
***隐藏网址***
(2)、解压下载下来的文件将php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件复制到php安装目录下的ext文件夹中。此处根据版本不同使用的文件不同。
(3)、在php.ini中添加
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll
到很多;extension=***.dll语句后面,注意extension_dir 指向的位置是否正确。
***隐藏网址***
(5)、写测试代码,测试代码如下:
《?php
header("Content-type: text/html; charset=utf-8");
$serverName = "localhost"; //数据库服务器地址$uid = "foodcert"; //数据库用户名$pwd = "foodcert"; //数据库密码$connectionInfo = array("UID"=》$uid, "PWD"=》$pwd, "Database"=》"FoodCert");
$conn = sqlsrv_connect( $serverName, $connectionInfo);if( $conn == false)
{
echo "连接失败!";
die( print_r( sqlsrv_errors(), true));
}else{
echo "连接成功!";
}
$query = sqlsrv_query($conn, "select * from 数据库表");while($row = sqlsrv_fetch_array($query))
{
print_r($row);
}?》
(6)、上面完成之后,测试代码的时候会出现连接失败,因为没有安装sql server nation client ,本地客户端,去下载合适的客户端,我使用的是Microsoft? SQL Server? 2012 Native Client,下载地址:
(7)、安装完成之后,在重新启动apache,然后访问就可以连接成功了。
(8)、注意:在php.ini文件所在的文件夹中必须要有ntwdblib.dll文件存在。
php怎么连接sql server
1.首先你要确定你用帐号密码 能登陆sql_server服务器(sql身份验证进去), 至少用excel 的插入数据源的方式连接一下.
2.建议去直接去下载Wamp的版本(你自己配置环境可能用问题),里面可以直接开启PHP_MSSQL模块
至少我用这个从来不会连接不上
3.可以试着用COM连接
这里讲见怎么用COM连接
允许 DCOM,需要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。
4.建议使用 adodb 方式使用, 就我本人经验, 用adodb 返回的recordset 支持最好
其他的总会碰到如 游标移动 问题, 记录总数问题..
PHP code
?
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$connstr = "Provider=SQLOLEDB;
Persist Security Info=False;
User ID=sa;
Password=;
Initial Catalog=cdr;
Data Source=localhost";
$conn-》Open($connstr);
php 怎么连接sqlserver 数据库
建议查看
手册中的mssql部分!\
or
//
,
when
using
a
non
default
port
number$server
=
’KALLESPC\SQLEXPRESS’;//
Connect
to
MSSQL$link
=
mssql_connect($server,
’sa’,
’phpfi’);if
(!$link)
{
die(’Something
went
wrong
while
connecting
to
MSSQL’);}?》
碰到问题之后再提问
求大神详细讲解php连接mssql
为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将 ;extension=php_mssql.dll前面的;去掉
1.连接MSSQL
$conn=mssql_connect("实例名或者服务器IP","用户名","密码");
//测试连接
if($conn)
{
echo "连接成功";
}
2.选择要连接的数据库
mssql_select_db("dbname");
3.执行查询
$rs = mssql_query("select top 1 id,username from tbname",$conn);
// 或者直接执行update,insert等语句,可以不用为返回结果赋值
mssql_query("update tbname set username=’niunv’ where id=1");
4.获取记录集行数
echo mssql_num_rows($rs);
5.获取记录集
if($row=mssql_fetch_array($rs))
{
$id = $row;//获取ID字段值
$username = $row;//获取username字段值
}
6.获取新增记录的ID
将id字段设置为IDENTITY字段,执行insert语句以后,就会产生一个
@@IDENTITY 全局变量值,查询出来就是最后一条新增记录的ID了.
mssql_query("insert into tbname(username) values (’nv’)",$conn);
$rs = mssql_query("select @@IDENTITY as id",$conn);
if($row=mssql_fetch_array($rs))
{
echo $row;
}
7.释放记录集
mssql_free_result($rs);
8.关闭连接
mssql_close($conn);
注:用PHP操作MSSQL比在ASP连接MYSQL要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装,很遗憾...
在web服务器上至少安装了mssql的客户端
打开php.ini把;extension=php_mssql.dll
前面的分号去掉
有必要话:需要制定extension_dir
推荐使用 php《=4.0.9
《=5.0.3目前 我还没有连接成功过4.010和 5.0.3
数据库的 连接分页可以到phpe.net上获取到相应的class
下面是我修改的 一个class
《?php
/**
*mssql 数据库连接类
**/
class SQL{
var $server;
var $userName;
var $passWord;
var $dataBase;
var $linkID = 0;
var $queryResult;
var $lastInsertID;
var $pageNum = 0;//分页用---共有几条数据
var $ER;
/**
*构造函数
**/
function SQL($Server=’’,$UserName=’’,$PassWord=’’,$DataBase=’’){
$this-》server = $Server;
$this-》userName = $UserName;
$this-》passWord = $PassWord;
$this-》dataBase = $DataBase;
}
/**
*数据库连接
**/
function db_connect(){
$this-》linkID = mssql_pconnect($this-》server,$this-》userName,$this-》passWord);
if(!$this-》linkID){
$this-》ER = "db_connect($this-》server,$this-》userName,$this-》passWord) error";
return 0;
}
if (!mssql_select_db($this-》dataBase,$this-》linkID)) {
$this-》ER = "mssql_select_db($this-》dataBase,$this-》lastInsertID) error";
return 0;
}
return $this-》linkID;
}
/**public
* function: Check the database, if exist then select
* exist: return 1
* not exist: return 0
*/
function selectDatabase(){
if(mssql_select_db($this-》dataBase))
return 1;
else
return 0;
}
/**
*数据操作
**/
function query($Str){
if ($this-》linkID == 0) {
$this-》ER = "数据库还没有连接!!";
}
$this-》queryResult = mssql_query($Str);
//$this-》queryResult = mssql_query($Str,$this-》linkID);
if (!$this-》queryResult) {
$this-》ER = "$Str.没有操作成功,query error!!";
return 0;//****************对于php 4.3.9以上版本的错误用1
}
return $this-》queryResult;
}
/**
*数据获取
**/
function fetch_array($result){
if($result != "") $this-》queryResult = $result;
$rec =mssql_fetch_array($this-》queryResult);
if(is_array($rec)){
return $rec;
}
//$this-》ER = "没有获取数据!";
return 0;
}
/**public
* function: Free the Query Result
* success return 1
* failed: return 0
*/
function freeResult($result=""){
if($result != "") $this-》queryResult = $result;
return mssql_free_result($this-》queryResult);
}
/**
*获取影响的的行数
*获取操作过的行数
**/
function num_rows($result=""){
if ($result != "") {
$this-》queryResult = $result;
$row = mssql_num_rows($this-》queryResult);
return $row;
}
}
/**
*获取查询结果---多个
**/
function result_ar($str=’’){
if (empty($str)) {
return 0;
}
$back = array();
$this-》queryResult = $this-》query($str);
while ($row = $this-》fetch_array($this-》queryResult)) {
$back = $row;
}
return $back;
}
/**
*数据库信息分页
*$Result 数据库操作
*str ==sql语句
*page ==第几页
*showNum ==显示几页
*/
function page($Str,$Page=0,$ShowNum=5){
$back = array();//返回数据
$maxNum = 0;
if ($Str == "") {
$this-》ER = "没有数据";
return 0;
}
$this-》queryResult = $this-》query($Str);
if($this-》queryResult){
if($Page==""){
$nopa=0;
}else{
$nopa = ($Page-1)*$ShowNum;
if ($nopa《0) {
$nopa = 0;
}
}
$maxNum=$this-》num_rows($this-》queryResult);
$k=0;
$i=0;
$dd=$this-》fetch_array($this-》queryResult);
while($dd&&$nopa《=$maxNum&&$i《$ShowNum){
if($nopa 》= $maxNum) $nopa = $maxNum;
mssql_data_seek($this-》queryResult,$nopa);
$row=$this-》fetch_array($this-》queryResult);
$nopa++;
$i++;
$back = $row;
if ($nopa 》=$maxNum) {
break;
}
}
}
$this-》pageNum = $maxNum;
return $back;
}
/**
*分页的html页码
*/
function page_html($DataNum=0,$Page=1,$ShowNum=3,$web,$Post=’’){
if ($DataNum == 0) {
$back = "没有要查询的数据";
}else {
if ($ShowNum《=0) {
$ShowNum = 3;
}
if ($Page《=0) {
$Page = 1;
}
if (empty($web)) {
$web = "#";
}
$pageNum = ceil($DataNum/$ShowNum);
if ($Page 《= 1) {
$top = "首页《《";
}else {
$top = "《a href=’".$web."?page=0&".$Post."’ target=’_self’》首页《《 《/a》";
}
if ($Page !==1) {
$upPage = "《a href=’".$web."?page=".($Page-1)."&".$Post."’ target=’_self’》上一页《/a》";
}else {
$upPage = "上一页";
}
if ($Page 《 $pageNum) {
$downPage = "《a href=’".$web."?page=".($Page+1)."&".$Post."’ target=’_self’》下一页《/a》";
}else {
$downPage = "下一页";
}
if ($Page == $pageNum) {
$foot = "》》尾页";
}else {
$foot = "《a href=’".$web."?page=".$pageNum."&".$Post."’ target=’_self’》 》》尾页《/a》";
}
$back = 《《《EOT
共 $pageNum 页
第 $Page/$pageNum 页 $top $upPage $downPage $foot
EOT;
}
return $back;
}
}//end class
?》
以上就是PHP连接MSSQL方法的总结,
php怎样连接sqlserver数据库
我用的PHP版本是php5.6.12,mssql数据库版本为2008
两种途径:
1、直接连接
$servname="CAPTAINHERO567";
$conninfo=array(
"Database"=》"netdata",
"UID"=》"lxz2005",
"PWD"=》"831140");
$conn=sqlsrv_connect($servname,
$conninfo);
$sql="select
*
from
Pinfo";
$db=sqlsrv_query($conn,
$sql);
while($row=sqlsrv_fetch_array($db))
{
echo("《div》".iconv("GB2312","UTF-8",$row)."《/div》");
}
2、使用PDO抽象数据层连接
$hostname
=
"192.168.1.100";
$dbname
=
"Northwind";
$username
=
"sa";
$pwd
=
"pwd100";
$dsn="sqlsrv:Server=$hostname;database=$dbname";
$conn
=
new
PDO
($dsn,$username,$pwd);
$conn-》setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
echo
"mssql
database
connnection
sucessed!";
php连接sql2000问题
PHP完全可以连接MSSQL的。
1.首先需要MSSQLClientTools是一个dll叫做ntwdblib.dll,它通常在MSSQLServer安装以后被copy到系统的system32文件夹下;如果是SQLServer就在本地,那你需要核实的是该ntwdblib.dll的版本与SQLServer的版本一致(2005对应2000.80.194.0,2000对应的是2000.2.8.0;)如果SQLServer在远程,需要将那个ntwdblib.dll拷贝到本机器的system32文件夹下;
(这里经常遇见的一个问题是,如果php《通常是较老的ntwdblib.dll》晚于SQLServer安装的话,php的ntwdblib.dll会覆盖SQLserver安装时copy在system32下的ntwdblib.dll,导致链接是提示:链接不上数据库)
2.核实完system32下的ntwdblib.dll之后,还需要将正确版本的ntwdblib.dll覆盖php文件夹下的ntwdblib.dll;
3.使用MSSQLServer的方法与MySQL的方法很类似;
如下:
《?php
//链接数据库
$conn=mssql_connect(’IBM-F24B11ED1CCSQLEXPRESS’,’sa’,’123456’);
mssql_select_db(’LabMIS’,?$conn);
//query语句
$Query="select*fromadmin";
$AdminResult=mssql_query($Query);
//输出结果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i《$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row);
echo("《br/》");
}
?》

更多文章:
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50
perl数组中最多的元素(用perl实现,得到一个数组中重复次数最多的元素)
2026年10月10日 17:00
oracle11g端口映射客户端频繁掉线(oracle本地进行连接的时候报错ORA-12560: TNS: 协议适配器错误)
2026年10月10日 16:10
vb程序设计里面的x是啥(VB程序设计中的变量是如何定义的,请大家帮帮忙告诉我)
2026年10月10日 10:40
java定时器每一分钟执行一次(java定时执行问题: 我想让一个Java代码在每小时的第25分钟执行一次的,这个怎么实现)
2026年10月10日 08:50
abap开发工作经历(目前,从事的是ABAP开发的不知道做这个有没有什么前途啊好的话,我会加分的~)
2026年10月10日 01:10





