新聞中心
php連接mssql數(shù)據(jù)庫(kù)的幾種方式
hp連接mssql數(shù)據(jù)庫(kù)有幾個(gè)注意事項(xiàng),尤其mssql的多個(gè)版本、32位、64位都有區(qū)別。

目前創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、大興安嶺網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=php_pdo_odbc.dll 前面的分號(hào)去掉,對(duì)應(yīng)的使哪種方式連接mssql。注意要重啟服務(wù)使其生效。
一、建立連接
1、odbc
首先,在php程序所在的服務(wù)器設(shè)置odbc。這里32位和64位操作系統(tǒng)有區(qū)別。32位的從控制面板中管理工具中的數(shù)據(jù)源(odbc)直接建立就可以了,64位的要運(yùn)行C:\Windows\SysWOW64\odbcad32.exe
從這里面設(shè)置。注意:上面只的是數(shù)據(jù)庫(kù)服務(wù)器為32為的,數(shù)據(jù)源設(shè)置服務(wù)器為32位和64位兩種的情況。只要兩個(gè)服務(wù)器建立的數(shù)據(jù)源位數(shù)一致就好。
下面是odbc建立連接代碼。
$con = odbc_connect('odbc名稱(chēng)','用戶(hù)名','密碼');
2、連接mssql2000
$con = mssql_connect('數(shù)據(jù)庫(kù)地址','用戶(hù)名','密碼');
3、連接mssql2008
$connectionInfo = array("UID"=用戶(hù)名,"PWD"=密碼,"Database"="數(shù)據(jù)庫(kù)名稱(chēng)");
$con = sqlsrv_connect( 數(shù)據(jù)庫(kù)地址,$connectionInfo);
二、輸入查詢(xún)代碼
這個(gè)都一樣,可以直接寫(xiě)入,也可以從mssql中驗(yàn)證好后復(fù)制過(guò)來(lái)。簡(jiǎn)單點(diǎn)說(shuō)就是把一個(gè)sql語(yǔ)句賦值給一個(gè)變量。
類(lèi)似下面代碼
$query = "SELECT top 12 * 數(shù)據(jù)庫(kù)名稱(chēng) order by id desc";
三、建立查詢(xún)并取出數(shù)據(jù)
1、odbc
$result = odbc_do($con,$query);
while(odbc_fetch_row($result))
{
$變量名稱(chēng) = odbc_result($result, "字段名稱(chēng)");
}
2、連接mssql2000
$result = mssql_query($con, $query);
while($row =mssql_fetch_array($result))
{
$變量名稱(chēng) = $row["字段名稱(chēng)"];
}
3、連接mssql2008
$result = sqlsrv_query($con, $query);
while($row = sqlsrv_fetch_array($result))
{
$變量名稱(chēng) = $row["字段名稱(chēng)"];
}
在php5.3及以后的版本中不附帶sqlsrv庫(kù)了。所以要從微軟這里下載。
四、關(guān)閉連接
這個(gè)沒(méi)有什么區(qū)別,分別是odbc_close();和mssql_close()和sqlsrv_close();
linux 操作系統(tǒng)下面php 訪問(wèn)mssql 數(shù)據(jù)庫(kù)配置方式
?php
$host="localhost";//主機(jī)名
$user="root";//用戶(hù)名
$pwd="root";//密碼
$dbname="huzq";//要連接的數(shù)據(jù)庫(kù)名
//如果連接失敗,顯示錯(cuò)誤
$link
=
mysql_connect($host,
$user,
$pwd)or
die("Could
not
connect:
"
.
mysql_error());
//如果選擇數(shù)據(jù)庫(kù)失敗,顯示錯(cuò)誤
mysql_select_db($dbname,
$link)
or
die
('Can\'t
use
bookshop
:
'
.
mysql_error());
//
網(wǎng)頁(yè)編碼
mysql_query("SET
NAMES
'gb2312'");
mysql_query("SET
CHARACTER_SET_CLIENT=gb2312");
mysql_query("SET
CHARACTER_SET_RESULTS=gb2312");
?
怎么樣配置thinkphp 與本地mysql和sql server同時(shí)連接倆個(gè)數(shù)據(jù)庫(kù)
thinkphp 同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的配置方法如下:
1、在Db.class.php腳本文件里面的類(lèi)增加一個(gè)魔術(shù)方法__get(),寫(xiě)法如下:
public?function?__get($propertyName)
{?return?$this-$propertyName;
}
這個(gè)方法是用來(lái)訪問(wèn)類(lèi)中protected $config成員屬性用的。有的人可能會(huì)說(shuō),直接把protected改成public豈不是更好。這樣只解決了基類(lèi)的問(wèn)題,假如,子類(lèi)也同樣進(jìn)行了受保護(hù),那要你更改更多的文件,這是我們做IT程序員非常不愿意看到的事情。
2、在Model.class.php中的getTableName()方法更改如下:
$tablepre?=?$this-db-config['tablepre'];
if(empty($this-trueTableName))?{
$tableName??=?empty($tablepre)???$this-tablePrefix?:?$tablepre;
if(!empty($this-tableName))?{
$tableName?.=?$this-tableName;
}
else
{
$tableName?.=?parse_name($this-name);
}
$this-trueTableName????=???strtolower($tableName);
}
return?(!empty($this-dbName)?$this-dbName.'.':'').$this-
trueTableName;這樣就完成了多庫(kù)自由切換時(shí),導(dǎo)致的表前綴問(wèn)題。
/*******************面向?qū)ο驪DO連接方式*********************/
'DB_TYPE'?=?'PDO',?//?數(shù)據(jù)庫(kù)類(lèi)型
'DB_DSN'?=?'mysql:host=localhost;dbname=master',?//?DSN連接。
'DB_USER'?=?'root',?//?數(shù)據(jù)庫(kù)用戶(hù)名
'DB_PWD'?=?'123456',?//?數(shù)據(jù)庫(kù)密碼
'DB_PORT'?=?'3306',?//?數(shù)據(jù)庫(kù)端口
'DB_PREFIX'?=?'g_',?//?數(shù)據(jù)表前綴
'DB_CHARSET'?=?'utf8',?//?數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
PHP 連接SQL數(shù)據(jù)庫(kù)的設(shè)置
db_ff8899_1--》替換成你的新用戶(hù)名
54x,92e- --》替換成你的新密碼
118.145.20.233 --》替換成你的mysql服務(wù)器的地址
3306 是端口,一般不用改
最后的db_ff8899_1 --》改成你的新數(shù)據(jù)庫(kù)的名字
分享標(biāo)題:php數(shù)據(jù)庫(kù)配置sql php數(shù)據(jù)庫(kù)配置
轉(zhuǎn)載來(lái)源:http://www.dlmjj.cn/article/dooejje.html


咨詢(xún)
建站咨詢(xún)
