PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例,mssql2008sqlsrv
本文实例讲述了PHP连接MSSQL2008/2005数据库(SQLSRV)配置方法,分享给大家供大家参考。具体方法如下:
PHP连接MSSQL2008/2005数据库与以往的连接mssql2000是不一样的,连接mssql2008/2005是需要自己添加PHP对MSSQL连接的驱动扩展了,而我们常用的hp.ini中的extension=php_mssql.dll扩展只适用连接于MSSQL2000,下面我们就来看看对此的解决办法
1.下载扩展
(1)去官方下载一个SQL Server Driver for PHP的扩展包,我是在这里下载的http://www.microsoft.com/en-us/download/details.aspx?id=20098【记得下载后好像是要先安装然后再解压】
(2)您也可以直接从本站下载(我之前下载的,来源于microsoft官方)【点击此处直接下载】
将下载下来的rar文件解压后你就会得到一堆的.dll文件
下载驱动程序,下载后安装释放程序,里面有以下文件:
php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_52_nts.dll
php_sqlsrv_52_ts.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
SQLServerDriverForPHP.chm(手册,英文够好的话,可以看看,嘿嘿)
SQLServerDriverForPHP_License.rtf
SQLServerDriverForPHP_Readme.htm(自述文件)
2.添加扩展
根据(vc6/vc9)需要选择扩展,我的环境是WAMP(php5.2.6/apache2.2.8),我选用的是php_sqlsrv_52_ts_vc6.dll,php_pdo_sqlsrv_52_ts_vc6.dll这两个文件,复制到wamp安装目录下的ext目录下,我的ext目录是在wamp/bin/php/php5.2.6/ext/
3.配置php.ini
(1)在php.ini的Dynamic Extensions中添加如下两条扩展:
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
(2)将;extension=php_pdo.dll前面的;去掉,开启pdo连接扩展
(3)重新启动apache
4.连接数据库(pdo连接)
$coninfo=array("Database"=>"try2","UID"=>"sa","PWD"=>"123");
$conn=sqlsrv_connect($servern,$coninfo) or die ("连接失败!");
$val=sqlsrv_query($conn,"select * from usertable");
while($row=sqlsrv_fetch_array($val)){
echo $row[1]."
";
}
sqlsrv_close($conn);
?>
5.例子
链接示例:
mssql_lib.php文件如下:
var $con = null;
function __construct($dbhost,$dbuser,$dbpass,$dbname) {
$connectionInfo = array("UID"=>$dbuser,"PWD"=>$dbpass,"Database"=>$dbname);
$this->con = sqlsrv_connect($dbhost,$connectionInfo);
}
function query($sql){
$result = sqlsrv_query($this->con, $sql);
}
function getRow($sql){
$result = sqlsrv_query($this->con, $sql);
$arr = array();
while($row = sqlsrv_fetch_array($result))
{
$arr[] = $row;
}
return $arr[0];
}
function getAll($sql){
$result = sqlsrv_query($this->con, $sql);
$arr = array();
while($row = sqlsrv_fetch_array($result))
{
$arr[] = $row;
}
return $arr;
}
function __destruct() {
unset($con);
}
}
test.php页面如下:
$db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$sql = "select * from crm_order_batch where (status=0 or status is null) and lock_id is not null ";
$orders_add_list = $db->getAll($sql);
希望本文所述对大家的PHP数据库程序设计有所帮助。
注意要重启服务使其生效。一、建立连接1、odbc首先,在php程序所在的服务器设置odbc。这里32位和64位操作系统有区别。32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:WindowsSysWOW64odbcad32.exe从这里面设置。注意:上面只的是数据库服务器为32为的,数据源设置服务器为32位和64位两种的情况。只要两个服务器建立的数据源位数一致就好。下面是odbc建立连接代码。复制代码代码如下:$con = odbc_connect('odbc名称','用户名','密码');2、连接mssql2000复制代码代码如下:$con = mssql_connect('数据库地址','用户名','密码');3、连接mssql2008复制代码代码如下:$connectionInfo = array("UID"=用户名,"PWD"=密码,"Database"="数据库名称");$con = sqlsrv_connect( 数据库地址,$connectionInfo);二、输入查询代码这个都一样,可以直接写入,也可以从mssql中验证好后复制过来。简单点说就是把一个sql语句赋值给一个变量。类似下面代码复制代码代码如下:$query = "SELECT top 12 * 数据库名称 order by id desc";三、建立查询并取出数据1、odbc复制代码代码如下:$result = odbc_do($con,$query);while(odbc_fetch_row($result)){$变量名称 = odbc_result($result, "字段名称");}2、连接mssql2000复制代码代码如下:$result = mssql_query($con, $query);while($row =mssql_fetch_array($result)){$变量名称 = $row["字段名称"];}3、连接mssql2008复制代码代码如下:$result = sqlsrv_query($con, $query);while($row = sqlsrv_fetch_array($result)){$变量名称 = $row["字段名称"];}在php5.3及以后的版本中不附带sqlsrv库了。所以要从微软这里下载。四、关闭连接
Unable to connect to server 说是连接不到服务器
加个端口号试试看
mssql_connect(‘localhost,1433′, USERNAME, PASSWORD);
如果还不行的话,看一下参考资料的文章

絕對會話超時從會話創建時開始計時,閒置會話超時則從用戶無操作時開始計時。絕對會話超時適用於需要嚴格控制會話生命週期的場景,如金融應用;閒置會話超時適合希望用戶長時間保持會話活躍的應用,如社交媒體。

服務器會話失效可以通過以下步驟解決:1.檢查服務器配置,確保會話設置正確。 2.驗證客戶端cookies,確認瀏覽器支持並正確發送。 3.檢查會話存儲服務,如Redis,確保其正常運行。 4.審查應用代碼,確保會話邏輯正確。通過這些步驟,可以有效診斷和修復會話問題,提升用戶體驗。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

設置httponly標誌對會話cookie至關重要,因為它能有效防止XSS攻擊,保護用戶會話信息。具體來說,1)httponly標誌阻止JavaScript訪問cookie,2)在PHP和Flask中可以通過setcookie和make_response設置該標誌,3)儘管不能防範所有攻擊,但應作為整體安全策略的一部分。

phpsessions solvathepromblymaintainingStateAcrossMultipleHttpRequestsbyStoringDataTaNthEserVerAndAssociatingItwithaIniquesestionId.1)他們儲存了AtoredAtaserver side,通常是Infilesordatabases,InseasessessionIdStoreDistordStoredStoredStoredStoredStoredStoredStoreDoreToreTeReTrestaa.2)

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境