您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)PHP中如何去連接MySQL數(shù)據(jù)庫,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
什么是MySQL
數(shù)據(jù)庫
MySQL 是一款安全、跨平臺、高效的,并與多種編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng)。MySQL 是一種在 Web 上使用在服務(wù)器上運(yùn)行的數(shù)據(jù)庫系統(tǒng)。其體積小、速度快、總體擁有成本低,MySQL 數(shù)據(jù)庫可以稱得上是目前運(yùn)行速度最快的 SQL 語言數(shù)據(jù)庫之一。除了具有許多其他數(shù)據(jù)庫所不具備的功能外,MySQL 數(shù)據(jù)庫還是一種完全免費(fèi)的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載 MySQL 數(shù)據(jù)庫,而不必支付任何費(fèi)用。大家感興趣的話也可以點(diǎn)擊《MySQL最新手冊教程》進(jìn)行學(xué)習(xí)。
MySQL數(shù)據(jù)庫的特點(diǎn)
功能強(qiáng)大,支持跨平臺MySQL 適用于不同的應(yīng)用場合,MySQL 支持至少 20 種以上的開發(fā)平臺,這使得在任何平臺下編寫的程序都可以進(jìn)行移植,而不需要對程序做任何的修改。
運(yùn)行速度快,高速是 MySQL 的顯著特性。在 MySQL 中,能夠極快地實(shí)現(xiàn)連接;SQL 函數(shù)使用高度優(yōu)化的類庫實(shí)現(xiàn),運(yùn)行速度極快。
支持面向?qū)ο?,PHP 支持混合編程方式。編程方式可分為純粹面向?qū)ο?、純粹面向過程、面句對象與面向過程混合 3 種方式。
安全性高,靈活和安全的權(quán)限與密碼系統(tǒng)。
成本低,MySQL 數(shù)據(jù)庫是一種完全免費(fèi)的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載。
支持各種開發(fā)語言,MySQL 為各種流行的程序設(shè)計語言提供支持,為它們提供了很多的 API 函數(shù)。
數(shù)據(jù)庫存儲容量大,支持強(qiáng)大的內(nèi)置函數(shù),PHP 中提供了大量內(nèi)置函數(shù),幾乎涵蓋了 Web 應(yīng)用開發(fā)中的所有功能。
數(shù)據(jù)庫的應(yīng)用
數(shù)據(jù)庫是一種專門用來管理數(shù)據(jù)資源的系統(tǒng),數(shù)據(jù)其實(shí)就是計算機(jī)每天打交道需要處理的對象,無論是文字、圖形還是聲音等等這些都是數(shù)據(jù)的一種形式。在文件式管理方法中,有著諸如不便移植、浪費(fèi)儲存空間等問題,但是數(shù)據(jù)庫更夠更好的解決這些問題。
數(shù)據(jù)庫立足于數(shù)據(jù)本身的管理,他將所有的數(shù)據(jù)保存到數(shù)據(jù)庫中,進(jìn)行有序的組織,并且借助數(shù)據(jù)庫管理系統(tǒng)能夠更方便的使用數(shù)據(jù)庫中的數(shù)據(jù)??梢岳斫鉃閿?shù)據(jù)庫就是經(jīng)過了計算機(jī)整理后的數(shù)據(jù),管理這些數(shù)據(jù)的軟件就是數(shù)據(jù)管理系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)是由數(shù)據(jù)庫和數(shù)據(jù)管理系統(tǒng)兩個部分組成的。
在同一個 MySQL 數(shù)據(jù)庫服務(wù)器中可以創(chuàng)建多個數(shù)據(jù)庫,如果把每個數(shù)據(jù)庫看成是一個“倉庫”,那么網(wǎng)站中的內(nèi)容數(shù)據(jù)就存儲在這個倉庫中。而對數(shù)據(jù)庫中數(shù)據(jù)的存取及維護(hù)等,都是通過數(shù)據(jù)庫管理系統(tǒng)軟件進(jìn)行管理的。
連接MySQL數(shù)據(jù)庫
使用 PHP 操作 MySQL 數(shù)據(jù)庫是進(jìn)行 Web 開發(fā)的必然要求之一,PHP 中提供了完整的操作 MySQL 數(shù)據(jù)庫的函數(shù),這些函數(shù)包括了從連接數(shù)據(jù)庫、執(zhí)行 SQL 語句、處理數(shù)據(jù)結(jié)果集到關(guān)閉數(shù)據(jù)庫的方方面面。通過這些函數(shù),使基于 MySQL 數(shù)據(jù)庫的 Web 開發(fā)高效而簡單。那接下來我們就來看一下PHP怎樣連接到MySQL數(shù)據(jù)庫。
在連接到數(shù)據(jù)庫之前,我們要確保開啟了 PHP 中的 mysqli
擴(kuò)展。開啟 mysqli 擴(kuò)展就是將 php.ini
配置文件中extension=mysqli
這一項(xiàng)注釋去掉就行了。我們可以通過 phpinfo()
函數(shù)查看來查看mysqli 擴(kuò)展是否開啟成功:
<?php phpinfo(); ?>
在輸出結(jié)果中出現(xiàn):
就表示已經(jīng)開啟PHP中的 mysqli 擴(kuò)展,在我們確認(rèn)已經(jīng)成功開啟后,就可以通過擴(kuò)展中的mysqli_connect()
函數(shù)來進(jìn)行PHP與MySQL數(shù)據(jù)庫的連接。
其中mysqli_connect()
函數(shù)的語法格式如下:
mysqli_connect( [string $host = ini_get("mysqli.default_host") [, string $username = ini_get("mysqli.default_user") [, string $password = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
其中需要注意的是:
$host
是可選參數(shù),要連接的服務(wù)器;
$username
是可選參數(shù),登錄所使用的 MySQL 用戶名;
$password
是可選參數(shù),登錄所用的密碼;
$dbname
是可選參數(shù),執(zhí)行查詢時使用的默認(rèn)數(shù)據(jù)庫;
$port
是可選參數(shù),指定連接到 MySQL 服務(wù)器的端口號;
$socket
是可選參數(shù),指定 socket 或要使用的已命名 pipe;
mysqli_connect()
函數(shù)是 mysqli::__construct() 函數(shù)的別名,所有使用對象 mysqli() 也可以實(shí)現(xiàn)連接數(shù)據(jù)庫。
接下來我們通過示例來看一下應(yīng)該怎樣連接,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $port = '3306'; $link = @mysqli_connect($host,$username,$password,$dbname,$port); // 連接到數(shù)據(jù)庫 if($link){ mysqli_set_charset($link,'UTF-8'); // 設(shè)置數(shù)據(jù)庫字符集 $sql = 'select * from user'; // SQL 語句 $result = mysqli_query($link, $sql); // 執(zhí)行 SQL 語句,并返回結(jié)果 $data = mysqli_fetch_all($result); // 從結(jié)果集中獲取所有數(shù)據(jù) mysqli_close($link); }else{ die('數(shù)據(jù)庫連接失??!'); } echo '<pre>'; print_r($data); ?>
輸出結(jié)果會獲取數(shù)據(jù)庫中你所設(shè)置的字符集,若是沒有連接上兩種輸出結(jié)果如下所示:
上述示例是面向過程的一種方法,下面看一下面向?qū)ο蟮姆椒ǎ?/p>
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('數(shù)據(jù)庫連接失?。?#39;.$mysql->connect_errno); }else{ $mysql -> set_charset('UTF-8'); // 設(shè)置數(shù)據(jù)庫字符集 $sql = 'select * from user'; // SQL 語句 $result = $mysql -> query($sql); $data = $result -> fetch_all(); $mysql -> close(); } echo '<pre>'; print_r($data); ?>
輸出結(jié)果與上述示例中的輸出結(jié)果一致。
想要關(guān)閉連接的話,一般情況下,連接會在腳本運(yùn)行完畢后自動關(guān)閉,當(dāng)然也可以使用代碼來關(guān)閉連接,示例如下:
$conn->close();
上述是面向?qū)ο蠓椒〞r的關(guān)閉連接代碼,下面看一下面向過程方法的代碼,示例如下:
mysqli_close($conn);
關(guān)于“PHP中如何去連接MySQL數(shù)據(jù)庫”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。