网站导航
南昌网络公司左边栏图标 公司新闻
南昌网络公司左边栏图标 行业动态
南昌网络公司左边栏图标 建站须知
南昌网络公司左边栏图标 百恒说说
南昌网络公司左边栏图标 网站知识
南昌网络公司左边栏图标 APP开发
南昌网络公司左边栏图标 网页设计
南昌网络公司左边栏图标 网站推广
南昌网络公司左边栏图标 域名注册
南昌网络公司左边栏图标 虚拟主机
南昌网络公司左边栏图标 网页案例
南昌网络公司左边栏图标 网页设计知识
南昌网络公司左边栏图标 关于我们
南昌网络公司左边栏图标 联系我们
南昌网站建设左侧面图标
您当前的位置:首页 > 网站知识
 

php连接sql server服务器环境配置方法及注意事项

作者:baiheng   更新时间:2015/5/6 8:21:56   阅读:3401

在做数据对接时难免会遇到跨库查询,例如,做购物商城时就涉及到库存查询,所以就要与实际库存软件对接,若是同一类数据那就好办,互联网程序大多都是用PHP开发,通常是结合MYSQL数据。但中小型库存软件大多都是用 microsoft SQL server    在此由南昌网站建设公司百恒网络技术工程师向大家介绍PHP连接SQL server 服务器环境配置及注意事项。
在早期我们使用PHP自带的php_mssql.dll,但PHP升级到PHP5.3以上,就不再支持该库了,大家也不用担心,现在只要在服务器上安装相应的扩展即可以解决该问题,即使PHP版是5.2 也是没问题的。微软专门为PHP出了个SQL Server的扩展(Windows版本的),对于Windows下使用php开发SQL Server应用来说,这个扩展有利于利用SQL Server来开发php平台连接sql server数据库管理系统。
1.找到PHP版本相对应的组件并在PHP.ini中进行扩展。接下来详细介绍
先到微软网站下载 SQL Server Driver for PHP,链接地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098,你也可以在百度搜SQLSRV20 下载,选择你认为安全的下载地址进行下载,百恒网络技术工程师建议到微软的官网下载。对服务器环境配置应该谨慎行事,同时注意下SQLSRV20 后面的数值,表对应不同版本。例如,20对应的就是5.2.x 或 5.3.x版本的,下载后该文件是一个.exe的压缩包,解压后即可以看到。

更高版本的PHP扩展文件

顺便介绍下:
其中的52、53表示就是php的5.2.x和5.3.x 版本,选择跟你php版本相匹配的;
选择vc6或vc9的主要看你使用的是什么web服务器软件,如果使用的是IIS那就选择vc9的,如果是Apache则选择vc6的.
至于ts和nts,就要看你安装的php版本是线程安全版的还是非线程安全版,ts是线程安全,nts是非线程安全.
如何查看是线程还是非线程通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。
比如我的配置是IIS FastCgi + php-5.3.2-nts-Win32-VC9-x86,那么就应该选择php_sqlsrv_53_nts_vc9.dll 文件并把它放到php安装目录的ext目录下,并在php.ini中添加 extension=php_sqlsrv_53_nts_vc9.dll
重启IIS或Apache接下来运行phpinfo()就可以看到如图所示,表示PHP环境配置好了,接下来配置SQL server 数据查询相关驱动。

2.安装sqlncli.msi(SQL Server Native Client),需要注意合适的版本及位数,有的是64位的,有的是32位的,支持SQL server 版本也不一样,2005、2008、2012等。下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=15748
关于数据库访问及数据读取,php有份用户手册,里面比较详细,可以查阅,地址:http://php.net/manual/zh/book.sqlsrv.php
实例代码,如下:


<?php
/* 数据库连接 */
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true ));
}

if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}

/* 初始化参数 */
$orderId = 1; $qty = 10; $productId = 100;

/* 插入数据 */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* 更新数据 */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Transaction committed.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Transaction rolled back.<br />";
}
?>


以上操作步骤是百恒网络技术工程师实际操作经验,希望此文对广大站长有所帮助。
专业专注于南昌网站设计,为用户提供高品质的网络产品和优质的服务是我们始终追求的目标!

[返回首页]  [关闭窗口]
  • 上一篇:做网站的公司后期对网站是怎么进行维护工作的?
  • 下一篇:想做网站的您,还是只知道比价嘛
  • **************************************************************************************************************
    本文对我有帮助,我要分享到:
    分享到:
    南昌网站公司内容页图标 您可能感兴趣的文章
    为用户提供高质量的网络产品和优质的服务是我们始终追求的目标,谢谢您的支持,很高兴为您服务!南昌网络公司-百恒网络。