php 怎么连接sqlserver
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件。如果没有,则下载该文件,复制到该目录下。
测试环境配置是否成功:打开浏览器,在地址栏输入http://localhost/?phpinfo=1 ,如果在打开的网页中查询到如下页面内容,则配置成功,否则配置失败。
重启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>";
?>
查询结果演示:
;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[0];//获取ID字段值
$username = $row[1];//获取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[0];
7.释放记录集
mssql_free_result($rs);
8.关闭连接
mssql_close($conn);
注:用PHP操作MSSQL比在ASP连接mysql要简单,所以,当需要MSSQL与MYSQL并存时,用PHP连接MSSQL来操作MYSQL与MSSQL并存比较简单好用.如果是ASP连接MYSQL,需要安装一个MYSQL驱动,默认windows的ODBC没有安装
1.在web服务器上至少安装了mssql的客户端
2.打开php.ini把;extension=php_mssql.dll 前面的分号去掉
有必要话:需要制定extension_dir
3.推荐使用 php<=4.0.9 <=5.0.3目前 我还没有连接成功过4.010和 5.0.3
4.数据库的 连接分页可以 到 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;
参考技术B
php连接sqlserver的方法如下:
以PHP版本是php5.6.12,mssql数据库版本为2008版本为例来说明。
连接方法有两种:
直接连接,代码如下:
$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["Pname"])."</div>");
使用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网页怎么连接到MYSQL数据库
<?php $conn=@mysql_connect("localhost","root","")or die("连接错误"); mysql_select_db("liuyanban",$conn); mysql_query("set names 'GBK'"); ?>连接数据库的代码是这样没错吧、可是在网页上操作后在数据库上查询不到数据。求详解
参考技术A 你写的这个只是数据库连接的代码,你只是连接了数据库,可以对你的“”数据库进行"CURD"操作,$conn返回的是resource,mysql_select_db()和mysql_query()返回的则是布尔类型,所以在浏览器预览的时候是没有任何内容的,有内容也只是一个TRUE
连接数据库的代码如下:
数据库操作类
class
mysql
private
$db_host;
//数据库主机
private
$db_user;
//数据库用户名
private
$db_pwd;
//数据库密码
private
$db_database;
//数据库名
private
$conn;
//数据库连接标识;
private
$sql;
//sql执行的语句
private
$result;
//query的资源标识符
private
$coding;
//数据库编码,gbk,utf8,gb2312
private
$show_error
=
true;
//本地调试使用,打印错误
public
function
__construct($db_host,
$db_user,
$db_pwd,
$db_database,
$coding)
$this->db_host
=
$db_host;
$this->db_user
=
$db_user;
$this->db_pwd
=
$db_pwd;
$this->db_database
=
$db_database;
$this->coding
=
$coding;
$this->connect();
private
function
connect()
$this->conn
=
@mysql_connect($this->db_host,
$this->db_user,
$this->db_pwd);
if
(!$this->conn)
//show_error开启时,打印错误
if
($this->show_error)
$this->show_error('错误提示:链接数据库失败!');
if
(!@mysql_select_db($this->db_database,
$this->conn))
//打开数据库失败
if
($this->show_error)
$this->show_error('错误提示:打开数据库失败!');
if
(!@mysql_query("set
names
$this->coding"))
//设置编码失败
if
($this->show_error)
$this->show_error('错误提示:设置编码失败!');
以上是关于php 怎么连接sqlserver的主要内容,如果未能解决你的问题,请参考以下文章
SqlServerSqlServer编程语言T-SQL的游标使用