版本的選擇是依據(jù)php版本決定的,具體如下:
創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元越城做網(wǎng)站,已為上家服務(wù),為越城各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
一、php5.3以下的版本連接sql server
5.3以下的版本擴(kuò)展里面自帶一個(gè)php_mssql.dll;接數(shù)據(jù)庫的擴(kuò)展,可以利用這個(gè)擴(kuò)展鏈接數(shù)據(jù)庫,(只限于鏈接低版本數(shù)據(jù)庫)。
具體的步驟如下:
1:首先安裝sql server,超級(jí)不好安裝,我之前安裝的是2008版本的,Windows過期后就不能用了,然后重裝還裝不上,最后重裝系統(tǒng)才裝上
2:確定SQL裝的時(shí)候用的是混合認(rèn)證模式,或SQL驗(yàn)證模式,然后打開php的配置文件(php.ini),開啟mssql擴(kuò)展 (extension=php_pdo_mssql.dll前面的分號(hào)去掉)并且需要把mssql.secure_connection = On 重啟后生效。
如果比較順利的話已經(jīng)可以連接數(shù)據(jù)庫了,如果連不上就需要繼續(xù)低下的配置:
3: 檢查ntwdblib文件的版本(php/下面和Apache/下面)下載正確的版本的 ntwdblib.dll(2000.80.194.0)覆蓋現(xiàn)有的DLL文件,(把ntwdblib.dll,php_mssql.dll 復(fù)制到system32目錄中也可以)ntwdblib.dll 用于PHP連接MSSQL2005或2008的驅(qū)動(dòng)文件。
4:測(cè)試連接:mssql_connect('localhost,1433', '用戶名', '密碼');
二、php5.3+連接sql server
其 實(shí)5.3以下的php版本已經(jīng)很少用了,況且安全性和兼容性都不好,所以高版本的php還是比較常見的。實(shí)踐證明低版本的php連接數(shù)據(jù)庫成功率比較低 (2005以上的版本幾乎不能使用),推薦使用php5.3+ php使用微軟專門的擴(kuò)展 SQLSRV 來連接sqlserver數(shù)據(jù)庫
步驟如下:
1:先到微軟網(wǎng)站下載 SQL Server Driver for PHP 是一個(gè)自解壓的 EXE文件,解壓縮后你會(huì)得到這么幾個(gè)文件:
其中的52、53表示就是php的5.2.x和5.3.x 版本,選擇跟你php版本相匹配的;vc6或vc9的選擇要看你使用的是什么web服務(wù)器軟件,如果使用的是IIS那就選擇vc9的,如果是Apache 則選擇vc6的,ts和nts的選擇要看你安裝的php版本是線程安全版的還是非線程安全版,ts是線程安全,nts是非線程安全。
首先搭建PHP開發(fā)運(yùn)行環(huán)境,安裝完成后再使用PHP連接mysql,代碼操作步驟如下:
下載php_mysql.dll擴(kuò)展,放到ext文件夾下,如果存在則跳過;
打開php.ini配置文件,去掉extension=php_mysql.dll項(xiàng)前面的分號(hào),如果已取掉則跳過此步驟;
然后運(yùn)行phpinfo();如果存在mysql項(xiàng),則說明已經(jīng)開啟mysql擴(kuò)展。
php連接mysql數(shù)據(jù)庫操作:
運(yùn)行結(jié)果:
您好,不可以連接,默認(rèn)沒有提供連接sql server的數(shù)據(jù)庫管理工具,只提供了sqlite和mysql的工具。
第一:linux php.5.6 http 怎么連接mysql所需要的工具:
64位的Linux Mint操作系統(tǒng):linuxmint-17.1-cinnamon-64bit。
第二:linux php.5.6 http 怎么連接mysql具體操作方法:
1、Apache+PHP+MySQL的安裝。
Apache+PHP 的安裝。
2、主要介紹一下,PHP如何連接MySQL。
首先需要下載安裝 php5-mysql這個(gè)模塊。
Ctrl+Alt+T,直接打開終端。
3、輸入 sudo apt-get install php5-mysql ,然后輸入當(dāng)前用戶的密碼后,開始下載并安裝該模塊。
4、安裝完畢后,需要重啟一下Apache服務(wù)。
在終端輸入 sudo /etc/init.d/apache2 restart ,回車后開始重啟Apache服務(wù)。
5、在 /var/www/html 目錄下,新建一個(gè) mysql.php 文件,并輸入如下的內(nèi)容:
?php
header("Content-type:text/html;charset=utf-8");
echo '開始mysql數(shù)據(jù)庫連接.br';
$con = mysql_connect("localhost","root","root");
if($con){
echo '連接mysql數(shù)據(jù)庫成功.br';
}else{
die('連接mysql數(shù)據(jù)庫失?。? . mysql_error());
}
mysql_close($con);
echo '關(guān)閉mysql數(shù)據(jù)庫連接.';
?
6、打開瀏覽器,輸入 , 顯示下圖所示則表示連接成功了。
數(shù)據(jù)庫有很多種類:mysql,oracle,mssql,db2等等。PHP操作數(shù)據(jù)庫的時(shí)候,要保證該類型數(shù)據(jù)庫的擴(kuò)展已開啟。這里連接的數(shù)據(jù)庫以mysql為例:
?php
//數(shù)據(jù)庫服務(wù)器地址
$host="localhost";?
//連接數(shù)據(jù)庫用戶名
$uname="root";?
//連接數(shù)據(jù)庫密碼
$upass="";?
//連接數(shù)據(jù)庫
$conn=mysql_connect($host,?$uname,$upass);
//判斷連接
if(!$conn){
die("連接數(shù)據(jù)庫失??!").mysql_errno();????
}
//連接成功,其他操作省略
?
常規(guī)方式
常規(guī)方式就是按部就班的讀取文件了。其余的話和上述方案一致。
// 讀取配置文件內(nèi)容
$handle = fopen("filepath", "r"); ? ? ? ? ? ?$content = fread($handle, filesize("filepath"));123
PHP解析XML
上述兩種讀取文件,其實(shí)都是為了PHP解析XML來做準(zhǔn)備的。關(guān)于PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是對(duì)于比較小型的xml配置文件,simplexml就足夠了。
配置文件
?xml version="1.0" encoding="UTF-8" ?mysql
!-- 為防止出現(xiàn)意外,請(qǐng)按照此標(biāo)準(zhǔn)順序書寫.其實(shí)也無所謂了 --
hostlocalhost/host
userroot/user
password123456/password
dbtest/db
port3306/port/mysql12345678910
解析
?php/**
* 作為解析XML配置文件必備工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml"; ? ?public static function getDBConfiguration() {
$dbconfig = array (); ? ? ? ?try { ? ? ? ? ? ?// 讀取配置文件內(nèi)容
$handle = fopen(self::$dbconfigpath, "r"); ? ? ? ? ? ?$content = fread($handle, filesize(self::$dbconfigpath)); ? ? ? ? ? ?// 獲取xml文檔根節(jié)點(diǎn),進(jìn)而獲取相關(guān)的數(shù)據(jù)庫信息
$mysql = simplexml_load_string($content); ? ? ? ? ? ?// 將獲取到的xml節(jié)點(diǎn)信息賦值給關(guān)聯(lián)數(shù)組,方便接下來的方法調(diào)用
$dbconfig['host'] = $mysql-host; ? ? ? ? ? ?$dbconfig['user'] = $mysql-user; ? ? ? ? ? ?$dbconfig['password'] = $mysql-password; ? ? ? ? ? ?$dbconfig['db'] = $mysql-db; ? ? ? ? ? ?$dbconfig['port'] = $mysql-port; ? ? ? ? ? ?// 將配置信息以關(guān)聯(lián)數(shù)組的形式返回
return $dbconfig;
} catch ( Exception $e ) { ? ? ? ? ? ?throw new RuntimeException ( "mark讀取數(shù)據(jù)庫配置文件信息出錯(cuò)!/markbr /" );
} ? ? ? ?return $dbconfig;
}
}1234567891011121314151617181920212223242526272829
數(shù)據(jù)庫連接池
對(duì)于PHP程序而言,優(yōu)化永無止境。而數(shù)據(jù)庫連接池就在一定程度上起到了優(yōu)化的作用。其使得對(duì)用戶的每一個(gè)請(qǐng)求而言,無需每次都像數(shù)據(jù)庫申請(qǐng)鏈接資源。而是通過已存在的數(shù)據(jù)庫連接池中的鏈接來返回,從時(shí)間上,效率上,都是一個(gè)大大的提升。
于是,這里簡(jiǎn)單的模擬了一下數(shù)據(jù)庫連接池的實(shí)現(xiàn)。核心在于維護(hù)一個(gè)“池”。
從池子中取,用畢,歸還給池子。
?php/**x
* ?PHP中的數(shù)據(jù)庫 工具類設(shè)計(jì)
* ?郭璞
* ?2016年12月23日
*
**/class DbHelper { ? ?private $dbconfig; ? ?private $dbpool; ? ?public $poolsize; ? ?public function __construct($poolsize = 20) { ? ? ? ?if (! file_exists ( "./utils.php" )) { ? ? ? ? ? ?throw new RuntimeException ( "markutils.php文件丟失,無法進(jìn)行配置文件的初始化操作!/markbr /" );
}else {
require './utils.php';
} ? ? ? ?// 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration (); ? ? ? ?// 準(zhǔn)備好數(shù)據(jù)庫連接池“偽隊(duì)列”
$this-poolsize = $poolsize;
$this-dbpool = array (); ? ? ? ?for($index = 1; $index = $this-poolsize; $index ++) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark連接數(shù)據(jù)庫失敗!/markbr /" );
array_push ( $this-dbpool, $conn );
}
} ? ?/**
* 從數(shù)據(jù)庫連接池中獲取一個(gè)數(shù)據(jù)庫鏈接資源
*
* @throws ErrorException
* @return mixed
*/
public function getConn() { ? ? ? ?if (count ( $this-dbpool ) = 0) { ? ? ? ? ? ?throw new ErrorException ( "mark數(shù)據(jù)庫連接池中已無鏈接資源,請(qǐng)稍后重試!/mark" );
} else { ? ? ? ? ? ?return array_pop ( $this-dbpool );
}
} ? ?/**
* 將用完的數(shù)據(jù)庫鏈接資源放回到數(shù)據(jù)庫連接池
*
* @param unknown $conn
* @throws ErrorException
*/
public function release($conn) { ? ? ? ?if (count ( $this-dbpool ) = $this-poolsize) { ? ? ? ? ? ?throw new ErrorException ( "mark數(shù)據(jù)庫連接池已滿/markbr /" );
} else {
array_push ( $this-dbpool, $conn );
}
}
}