search
Homephp教程php手册PHP调用SQL Server存储过程

PHP调用SQL Server存储过程

Jun 06, 2016 pm 07:53 PM
phpserversqlstorageInstalltransferprocess

一、安装SQL Server Driver for PHP 在微软官网上发现了这个东西,他提供了一套PHP对MS2005/2008操作的全新函数库,并且支持UTF8,作为PHP的扩展运行。看来MS对PHP 还比较亲善,PHP自带的mssql操作函数对MS2005/2008的一些新功能不支持,MS就自己提供了解决

一、安装SQL Server Driver for PHP
    在微软官网上发现了这个东西,他提供了一套PHP对MS2005/2008操作的全新函数库,并且支持UTF8,作为PHP的扩展运行。看来MS对PHP 还比较亲善,PHP自带的mssql操作函数对MS2005/2008的一些新功能不支持,MS就自己提供了解决方法,赞一个!不过只支持PHP5.2 /5.3,MS说目前在PHP 5.2上测试过,低版本的是否支持就不清楚了。我的系统正好也用的是PHP5.2,其它版本也懒得去测了。
下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=CCDF728B-1EA0-48A8-A84A-5052214CAAD9&displaylang=en
下载后是个.exe的压缩包,解开后有下列.dll文件:
php_sqlsrv_52_nts_vc6.dll
php_sqlsrv_52_ts_vc6.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
要根据自己的PHP环境选择一个合适的.dll,压缩包的说明文档给出了适用范围:

Driver file
PHP version
Thread safe?
Use with PHP .dll

php_sqlsrv_53_nts_vc6.dll
5.3
no
php5.dll

php_sqlsrv_53_nts_vc9.dll
5.3
no
php5.dll

php_sqlsrv_53_ts_vc6.dll
5.3
yes
php5ts.dll

php_sqlsrv_53_ts_vc9.dll
5.3
yes
php5ts.dll

php_sqlsrv_52_nts_vc6.dll
5.2
no
php5.dll

php_sqlsrv_52_ts_vc6.dll
5.2
yes
php5ts.dll

    DLL名字称中的_vc6/_vc9表示你使用的PHP为vc6或vc9编译,PHP version中确定适用版本,Thread safe为该版本安全性,Use with PHP .dll是你PHP的安装方式。更多说明请参考文档。
    我这里选择的是php_sqlsrv_52_ts_vc6.dll,拷贝到php/ext/下,然后在php.ini中添加一行 “extension=php_sqlsrv_52_ts_vc6.dll”,重启WEB服务。phpinfo();查看一下,如果有“sqlsrv”扩 展项,就表示安装成功了。
二、安裝Microsoft SQL Server Native Client
    这个是MSSQL的客户端存取程序,它提供了ODBC、OLE DB、ADO 等方式连接 MSSQL。 如果已经安装了MSSQL2005/2008,则已经安装了对应版本的此程序,不用单独安装了。
    Microsoft SQL Server Native Client 2005支持SQL Server 7、2000、2005
下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=50b97994-8453-4998-8226-fa42ec403d17,找到对应项后根据自己机器情况(X86/X64)选择下载。
    Microsoft SQL Server Native Client 2008支持SQL Server 2000、2005、2008
下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c6c3e9ef-ba29-4a43-8d69-a2bed18fe73c,找到对应项后根据自己机器情况(X86/X64/IA64)选择下载。
三、至此已经可以使用UTF8进行存取了
    新建一个UTF8编码的文件,测试一下:

$connstr = array("Database"=>"test","Uid"=>"sa","Pwd"=>"xxx","CharacterSet" => "UTF-8");
$conn = sqlsrv_connect('127.0.0.1',$connstr);
if($conn==false) print_r(sqlsrv_errors(),true);
$sql = "SELECT TOP 10 * FROM table";
if($data = sqlsrv_query($conn, $sql))
{
    while($row = sqlsrv_fetch_array($data,SQLSRV_FETCH_ASSOC))
{
        print_r($row);
}
}
sqlsrv_close($conn);

四、ADODB支持
    看到上例可能要抓狂了,因为提供了全新的一套操作函数,使用起来不习惯,跟现有系统也不兼容。去下载了个最新版的ADODB后惊喜的发现它已经封装了该系列函数,帮我们解决了此问题。只需作个简单的修改:
找到/adodb/drivers/adodb-mssqlnative.inc.php,在_connect方法后有一行:
“ $connectionInfo = array("Database"=>$argDatabasename,'UID'=>$argUsername,'PWD'=>$argPassword);”
改为:
“ $connectionInfo = array("Database"=>$argDatabasename,'UID'=>$argUsername,'PWD'=>$argPassword,"CharacterSet" => 'UTF-8');”
  ADODB下载:http://adodb.sourceforge.net
OK了,测试代码:

$conn = ADONewConnection('mssqlnative');
$conn->Connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$ADODB_FETCH_MODE= ADODB_FETCH_ASSOC;
$sql = "SELECT * FROM table";
$data = $conn->GetAll($sql);
print_r($data);

五、

require 'dbconn.php';
$userId = 1; // 定义输入参数
$userName; // 定义返回值
$stmt = mssql_init("P__Test_GetData", $conn) or die("initialize stored procedure failure");
mssql_bind($stmt, "@userid", $userId, SQLINT4);
mssql_bind($stmt, "@username", $userName, SQLVARCHAR, true);
$rs = mssql_execute($stmt, false);
echo "This user name is: ".$userName;
?>

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor