當前位置:首頁 » 編程語言 » sqlserver2008php

sqlserver2008php

發布時間: 2023-08-12 20:19:26

linuxphp連接sql2008出現Fatal error: Call to undefined function mssql_connect()

理論上linux下php是可以連接到微軟的sqlserver的。(php放在linux系統,sqlserver放在windows系統)
根據你的報錯,提示不存在mssql_connect這個函數。
如果你的php是5.2的版本,則需要在php.ini中加入mssql擴展。(還需要對應sql版本的ntwdblib.dll,這個方法使用的是php自帶的擴展)

另外也可以去微軟官方下載sqlsrv.dll。(由微軟開發的擴展。)
注意:sqlsrv3.0對應的是mssql2012
sqlsrv2.0對應的才是mssql2008

官方部分說明:http://msdn.microsoft.com/en-us/library/cc296170.aspx
Microsoft Drivers for PHP for SQL Server, version 3.0 requires PHP 5.3.0 or later. If possible, use PHP 5.3.6, or later. The version 2.0 driver works with PHP 5.2.4 or later, but not with PHP 5.4. If possible, use PHP 5.2.13, or later.

下載地址:
3.0 for sql 2012 http://go.microsoft.com/fwlink/?LinkID=236805
2.0 for sql 2008 r2 x86 http://go.microsoft.com/fwlink/?LinkID=188400&clcid=0x409
2.0 for sql 2008 r2 x64 http://go.microsoft.com/fwlink/?LinkID=188401&clcid=0x409

② php連接sqlserver2008失敗

這個是提示你沒有安裝MSSQl 2012的驅動擴展。
從Sql Server 2008開始,不再支持PHP自帶的驅動程序,需要使用微軟提供的驅動程序。此驅動程序拋棄了mssql系列函數,只能使用sqlsrv和pdo的方式進行連接操作。

步驟1:下載微軟Sql Server官方驅動程序,下載地址:
http://www.microsoft.com/en-us/download/details.aspx?id=20098

步驟2:安裝Sql Server的驅動擴展
將下載好的exe程序打開,解壓會釋放出很多.dll文件,將對應的dll文件拷貝到你的php擴展包目錄下的ext目錄。

解壓得到的dll文件中文件名的數字部分(例如52,53)代表對應不同的PHP版本,文件名中帶n的為非線程安全的,文件名中的vc對應的是VC版本,VC6可以部署到Apach2.X版本,VC9可部署到更高版本Apache。

首先,需要確定你的PHP的版本,假設PHP的版本為5.3.x
其次,要確定你的PHP運行的是線程安全的還是非線程安全的(假設線程安全)。
另外,還需要確認的版本(假設Apache2.2)。

那麼,你對應的文件應當是php_pdo_sqlsrv_53_ts_vc6.dll(PDO鏈接)和php_sqlsrv_53_ts_vc6.dll(sqlsrv鏈接),將這兩個文件拷貝到你的PHP的擴展包下的ext目錄,然後要修改php.ini,增加這兩項擴展的支持:
extension=php_sqlsrv_53_ts_vc6.dll
extension=php_pdo_sqlsrv_53_ts_vc6.dll
保存後重啟Apache即可。

③ php怎麼樣連接sql資料庫

1、軟體配置

Win7 64 +wampserver2.2d-x32+SQL Server 2008 R2資料庫,wamp2.2中的php版本是5.3.10。

Php環境也可以換成php+apache。

2、支持連接MySQL Server配置

php版本5.3以前,有php_mssql功能,可以使用,但是5.3及以後的版本不支持。

2.1、php連接mssql設置(php5.3以前版本)

(1)、打開php.ini,將
;extension=php_mssql.dll前面的分號(;)去掉,然後重啟 Apache。如果不行的話,進行第2步。

(2)檢查一下你的php安裝目錄下的ext下面有沒有php_mssql.dll存在,如果沒有,從www.php.net重新下載一個php安裝,要下載那個壓縮包的才是最完整的。
如果ext目錄下已經有了php_mssql.dll,那麼你需要打開php.ini,找到
extension_dir = "./ext"
這一句(或者類似的,不一定是"./ext",查找"extension_dir"即可),然後把"./ext"修改為你的php安裝目錄的ext目錄的完整路徑,比如"c:/php/ext",或者"c:/program files/php/ext"這樣。然後再次重啟 Apache。如果還是不行的話,可能就需要第3步了。

(3)把 php 目錄下的 ntwdblib.dll 和 php_mssql.dll 復制到 system32的系統目錄中去,然後重起Apache。

(4)然後就可以連接MSSQL,並進行一些操作了。連接例子如下:

2.2、php連接sqlsrv(php5.3以及以上版本)

(1)、下載Microsoft Drivers forPHPfor SQL Server,官方下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098,我使用的是SQLSRV2.0。

(2)、解壓下載下來的文件將php_pdo_sqlsrv_53_ts_vc9.dll文件和php_sqlsrv_53_ts_vc9.dll文件復制到php安裝目錄下的ext文件夾中。此處根據版本不同使用的文件不同。

(3)、在php.ini中添加

extension=php_sqlsrv_53_ts_vc9.dll

extension=php_pdo_sqlsrv_53_ts_vc9.dll

到很多;extension=***.dll語句後面,注意extension_dir 指向的位置是否正確。

(4)、重啟apache,然後訪問http://apache訪問地址/?Phpinfo=1,出現下面圖片中的內容,則代表配置正確。

(5)、寫測試代碼,測試代碼如下:

(6)、上面完成之後,測試代碼的時候會出現連接失敗,因為沒有安裝sql server nation client ,本地客戶端,去下載合適的客戶端,我使用的是Microsoft? SQL Server? 2012 Native Client,下載地址:

(7)、安裝完成之後,在重新啟動apache,然後訪問就可以連接成功了。

(8)、注意:在php.ini文件所在的文件夾中必須要有ntwdblib.dll文件存在。

④ php 怎麼連接sqlserver

php連接sqlserver的方法如下:

以PHP版本是php5.6.12,mssql資料庫版本為2008版本為例來說明。

連接方法有兩種:

  1. 直接連接,代碼如下:

    $servname="CAPTAINHERO567";
    $conninfo=array( "Database"=>"netdata", "UID"=>"lxz2005", "PWD"=>"831140");
    $conn=sqlsrv_connect($servname, $conninfo);
    $sql="select * from Pinfo";
    $db=sqlsrv_query($conn, $sql);
    while($row=sqlsrv_fetch_array($db))
    {
    echo("<div>".iconv("GB2312","UTF-8",$row["Pname"])."</div>");
    }

  2. 使用PDO抽象數據層連接

    $hostname = "192.168.1.100";
    $dbname = "Northwind";
    $username = "sa";
    $pwd = "pwd100";
    $dsn="sqlsrv:Server=$hostname;database=$dbname";

    $conn = new PDO ($dsn,$username,$pwd);
    $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    echo "mssql database connnection sucessed!";

⑤ sqlserver 2008中哪個排序規則是UTF-8

今天使用php操作資料庫時發現插入SQLServer2008資料庫里的中文欄位出現亂碼,下面是我一開始時的一些情況:開發環境是php5.3.3+Apache2.2.17+SQLServer2008,php腳本文件的編碼是utf-8,傳給資料庫的編碼是GB2312(SQLServer的默認字元編碼可能是這個,我不肯定),我用的是微軟官方提供的SQLSRV庫來連接資料庫的(PS:SQLServer2005開始已經不支持用mssql.dll來連接了),故使用sqlsrv_query($conn,"setnamesGB2312");語句來設置傳給資料庫的編碼格式的,sql語句這樣寫了:insertintoOpinion(content)values('aaa中文內容');運行這條sql語句,發現執行不成功,用sqlsrv_errors()函數來輸出錯誤信息,得到如下結果:復制代碼代碼如下:Array([0]=>Array([0]=>IMSSP[SQLSTATE]=>IMSSP[1]=>-46[code]=>-46[2]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.[message]=>-16:�ڶ��ֽڵ�Ŀ�����ҳ�У�û�д�Unicode�ַ����ӳ�䵽���ַ�.))這是在網頁上顯示的結果,上面的亂碼是原封不動下來的。從「-16」可以看出是字元編碼轉換有問題導致的。於是我使用php的iconv函數來對中文進行強制編碼轉換,然後執行sql語句,代碼如下:復制代碼代碼如下:$string=iconv('utf-8','GB2312//IGNORE','aaa中文內容');$sql="insertintoOpinion(content)values($string)";[code]這時候又報錯了,錯誤信息如下:[code]Array([0]=>Array([0]=>42S22[SQLSTATE]=>42S22[1]=>207[code]=>207[2]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��[message]=>[Microsoft][SQLServerNativeClient10.0][SQLServer]����'aaa��������'��Ч��))這個錯誤信息看不出什麼頭緒,我又把sql語句輸出到網頁上看一下是不是sql語句寫錯了,輸出結果如下:復制代碼代碼如下:insertintoOpinion(content)values(aaa��������)咋一看好像沒問題,其實是有問題的,注意到後面那個括弧里的參數是應該用引號來括起來的(表示它是一個字元串),所以我又修改了sql語句,代碼如下:復制代碼代碼如下:$sql="insertintoOpinion(content)values('".$string."')";為了看清楚我放大點用單引號把$string括起來,這樣之後執行sql語句成功,並且資料庫里保存的中文沒有亂碼。

⑥ php如何連接SQL server 2008 r2,求助各位

配置php

a、打開php.in將extension=php_mssql.dll的注釋符號去掉。

b、打開php.in將mssql.secure_connection = Off改為on。

c、將php_mssql.dll拷貝到php.in中extension_dir 指定的目錄或者系統system32目錄下。(php_mssql.dll在php的壓縮安裝包中有)。

<?php

/**
* @author samsun
* @right 2007
* php使用mssql庫,連接sql server資料庫實例
*/

$server='ip地址或伺服器名';
$username='資料庫用戶名';
$password='資料庫密碼';
$database='資料庫名';

$conn=mssql_connect($server,$username,$password)
or die("Couldn't connect to SQL Server on $server");
$db=mssql_select_db($database) or die("Couldn't open database $database");

?>

或:

<?php
//鏈接資料庫
$conn=mssql_connect('localhost','sa','123456');
mssql_select_db('gu_dde',$conn);
//query語句
$Query="select * from dde_top";
$AdminResult=mssql_query($Query);
//輸出結果
$Num=mssql_num_rows($AdminResult);
for($i=0;$i<$Num;$i++)
{
$Row=mssql_fetch_array($AdminResult);
echo($Row[1]);
echo("<br/>");
}
?>

熱點內容
編譯器的製作環境 發布:2025-02-06 05:54:34 瀏覽:828
學車網源碼 發布:2025-02-06 05:47:40 瀏覽:385
搭建區域網影院伺服器 發布:2025-02-06 05:47:38 瀏覽:759
廣東一區cf刷經驗房密碼都是什麼 發布:2025-02-06 05:46:20 瀏覽:633
加密工具源碼 發布:2025-02-06 05:44:52 瀏覽:13
筆記本可用存儲多大 發布:2025-02-06 05:44:48 瀏覽:157
ftp登錄後沒有反應 發布:2025-02-06 05:29:41 瀏覽:175
linux建目錄命令 發布:2025-02-06 05:29:06 瀏覽:724
安卓所有照片在哪裡 發布:2025-02-06 05:16:32 瀏覽:972
l2緩存作用 發布:2025-02-06 05:15:02 瀏覽:291