溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中如何去連接MySQL數(shù)據(jù)庫

發(fā)布時間:2021-10-27 15:30:16 來源:億速云 閱讀:154 作者:小新 欄目:編程語言

這篇文章將為大家詳細(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):

PHP中如何去連接MySQL數(shù)據(jù)庫

就表示已經(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é)果如下所示:

PHP中如何去連接MySQL數(shù)據(jù)庫PHP中如何去連接MySQL數(shù)據(jù)庫

上述示例是面向過程的一種方法,下面看一下面向?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é)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI