mssql是sqlserver 的简称.这个是微软的重型数据库.
我们查看php是否支持某项功能可以打开配置文件,查看是否有该驱动即可.
实际上php所有版本都支持sql server .
只需要打开php的配置文件,将以下代码打开注释即可.
肯定可以啊 你买的是那种虚拟主机吧 估计是php+Mysql 的模式,他不提供sqlserver 当然就连不上咯.
具体的步骤如下:
如果比较顺利的话已经可以连接数据库了,如果连不上就需要继续低下的配置:
步骤如下:
如果不知道可以在phpinfo里看Zend Extension Build这个属性如下图:
extension=在ext下的pdo扩展(用于pdo)
extension=在ext下的扩展
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
. . .
不然会出现如下错误:
array
0 =array
'
①. =array
①. =int0
'code' =int0
网上有 其实连接MSSQL 有很多方法
第二种 用ODBC 开放数据库连接
php.ini文件中;extension=php_pdo_mssql.dll ;extension=php_pdo_odbc.dll 前面的分号去掉,对应的使哪种方式连接mssql.注意要重启服务使其生效.
第一段:建立连接
①.、odbc
下面是odbc建立连接代码.
复制代码 代码如下:
$connectionInfo = array("UID"=用户名,"PWD"=密码,"Database"="数据库名称");$con = sqlsrv_connect( 数据库地址,$connectionInfo);第二段:输入查询代码
这个都一样,可以直接写入,也可以从mssql中验证好后复制过来.简单点说就是把一个sql语句赋值给一个变量.
类似下面代码
$result = odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$变量名称 = odbc_result($result, "字段名称");}
$result = mssql_query($con, $query);
while($row =mssql_fetch_array($result))
$变量名称 = $row["字段名称"];
}
$result = sqlsrv_query($con, $query);
while($row = sqlsrv_fetch_array($result)){
第四段:关闭连接
这个没有什么区别,分别是odbc_close();和mssql_close()和sqlsrv_close();最后体会:php连接mssql比连接mssql的函数少了一些,但是也够用了.具体函数可以参考php官方手册
常规方式
常规方式就是按部就班的读取文件了.其余的话和上述方案一致.
// 读取配置文件内容
PHP解析XML
上述两种读取文件,其实都是为了PHP解析XML来做准备的.关于PHP解析XML的方式的博客有很多.方式也有很多,像simplexml,XMLReader,DOM啦等等.但是对于比较小型的xml配置文件,simplexml就足够了.
配置文件
!-- 为防止出现意外,请按照此标准顺序书写.其实也无所谓了 --
hostlocalhost/host
userroot/user
dbtest/db
解析
php/**
* 作为解析XML配置文件必备工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml"; ? ?public static function getDBConfiguration() {
$dbconfig = array (); ? ? ? ?try { ? ? ? ? ? ?// 读取配置文件内容
$handle = fopen(self::$dbconfigpath, "r"); ? ? ? ? ? ?$content = fread($handle, filesize(self::$dbconfigpath)); ? ? ? ? ? ?// 获取xml文档根节点,进而获取相关的数据库信息
$mysql = simplexml_load_string($content); ? ? ? ? ? ?// 将获取到的xml节点信息赋值给关联数组,方便此时此刻呢的方法调用
$dbconfig['host'] = $mysql-host; ? ? ? ? ? ?$dbconfig['user'] = $mysql-user; ? ? ? ? ? ?$dbconfig['password'] = $mysql-password; ? ? ? ? ? ?$dbconfig['db'] = $mysql-db; ? ? ? ? ? ?$dbconfig['port'] = $mysql-port; ? ? ? ? ? ?// 将配置信息以关联数组的形式返回
return $dbconfig;
} catch ( Exception $e ) { ? ? ? ? ? ?throw new RuntimeException ( "mark读取数据库配置文件信息出错!/markbr /" );
} ? ? ? ?return $dbconfig;
数据库连接池
对于PHP程序而言,优化永无止境.而数据库连接池就在一定程度上起到了优化的作用.其使得对用户的每一个请求而言,无需每次都像数据库申请链接资源.而是通过已存在的数据库连接池中的链接来返回,从时间上,效率上,都是一个大大的提升.
于是,这里简单的模拟了一下数据库连接池的实现.核心在于维护一个"池".
从池子中取,用毕,归还给池子.
php/**x
* ?PHP中的数据库 工具类设计
* ?郭璞
*
}else {
require './utils.php';
} ? ? ? ?// 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration (); ? ? ? ?// 准备好数据库连接池"伪队列"
$this-poolsize = $poolsize;
$this-dbpool = array (); ? ? ? ?for($index = 1; $index = $this-poolsize; $index ++) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark连接数据库失败!/markbr /" );
array_push ( $this-dbpool, $conn );
} ? ?/**
* 从数据库连接池中获取一个数据库链接资源
* @throws ErrorException
* @return mixed
*/
public function getConn() { ? ? ? ?if (count ( $this-dbpool ) = 0) { ? ? ? ? ? ?throw new ErrorException ( "mark数据库连接池中已无链接资源,请稍后重试!/mark" );
} else { ? ? ? ? ? ?return array_pop ( $this-dbpool );
* 将用完的数据库链接资源放回到数据库连接池
* @param unknown $conn
public function release($conn) { ? ? ? ?if (count ( $this-dbpool ) = $this-poolsize) { ? ? ? ? ? ?throw new ErrorException ( "mark数据库连接池已满/markbr /" );
} else {
以上就是土嘎嘎小编为大家整理的php能连接微软数据库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!