搜尋
首頁php教程php手册PHP调用SQL Server存储过程

PHP调用SQL Server存储过程

Jun 06, 2016 pm 07:53 PM
phpserversql儲存安裝呼叫過程

一、安装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;
?>

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具