中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

PHPPDO簡單教程是怎樣的

發布時間:2021-10-18 17:36:10 來源:億速云 閱讀:137 作者:柒染 欄目:數據庫

今天就跟大家聊聊有關PHPPDO簡單教程是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

大約 80% 的 Web 應用程序由 PHP 提供支持。類似地,SQL 也是如此。PHP 5.5 版本之前,我們有用于訪問 MySQL 數據庫的 mysql_ 命令,但由于安全性不足,它們最終被棄用。

棄用這件事是發生在 2013 年的 PHP 5.5 上,我寫這篇文章的時間是 2018 年,PHP 版本為 7.2。mysql_ 的棄用帶來了訪問數據庫的兩種主要方法:mysqli 和 PDO 庫。

雖然 mysqli 庫是官方指定的,但由于 mysqli 只能支持 mysql 數據庫,而 PDO 可以支持 12 種不同類型的數據庫驅動程序,因此 PDO 獲得了更多的贊譽。此外,PDO 還有其它一些特性,使其成為大多數開發人員的更好選擇。你可以在下表中看到一些特性比較:

PDOMySQLi數據庫支持12 種驅動只有 MySQL范例OOP過程 + OOP預處理語句(客戶端側)YesNo1命名參數YesNo

現在我想對于大多數開發人員來說,PDO 是首選的原因已經很清楚了。所以讓我們深入研究它,并希望在本文中盡量涵蓋關于 PDO 你需要的了解的。

連接

第一步是連接到數據庫,由于 PDO 是完全面向對象的,所以我們將使用 PDO 類的實例。

我們要做的第一件事是定義主機、數據庫名稱、用戶名、密碼和數據庫字符集。

$host = 'localhost';$db  = 'theitstuff';$user = 'root';$pass = 'root';$charset = 'utf8mb4';$dsn = "mysql:host=$host;dbname=$db;charset=$charset";$conn = new PDO($dsn, $user, $pass);

之后,正如你在上面的代碼中看到的,我們創建了 DSN 變量,DSN 變量只是一個保存數據庫信息的變量。對于一些在外部服務器上運行 MySQL 的人,你還可以通過提供一個 port=$port_number 來調整端口號。

最后,你可以創建一個 PDO 類的實例,我使用了 $conn 變量,并提供了 $dsn、$user、$pass 參數。如果你遵循這些步驟,你現在應該有一個名為 $conn 的對象,它是 PDO 連接類的一個實例。現在是時候進入數據庫并運行一些查詢。

一個簡單的 SQL 查詢

現在讓我們運行一個簡單的 SQL 查詢。

$tis = $conn->query('SELECT name, age FROM students');while ($row = $tis->fetch()){ echo $row['name']."\t"; echo $row['age']; echo "<br>";}

這是使用 PDO 運行查詢的最簡單形式。我們首先創建了一個名為 tis(TheITStuff 的縮寫 )的變量,然后你可以看到我們使用了創建的 $conn 對象中的查詢函數。

然后我們運行一個 while 循環并創建了一個 $row 變量來從 $tis 對象中獲取內容,最后通過調用列名來顯示每一行。

很簡單,不是嗎?現在讓我們來看看預處理語句。

預處理語句

預處理語句是人們開始使用 PDO 的主要原因之一,因為它提供了可以阻止 SQL 注入的語句。

有兩種基本方法可供使用,你可以使用位置參數或命名參數。

位置參數

讓我們看一個使用位置參數的查詢示例。

$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)");$tis->bindValue(1,'mike');$tis->bindValue(2,22);$tis->execute();

在上面的例子中,我們放置了兩個問號,然后使用 bindValue() 函數將值映射到查詢中。這些值綁定到語句問號中的位置。

我還可以使用變量而不是直接提供值,通過使用 bindParam() 函數相同例子如下:

$name='Rishabh'; $age=20;$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)");$tis->bindParam(1,$name);$tis->bindParam(2,$age);$tis->execute();

命名參數

命名參數也是預處理語句,它將值/變量映射到查詢中的命名位置。由于沒有位置綁定,因此在多次使用相同變量的查詢中非常有效。

$name='Rishabh'; $age=20;$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(:name, :age)");$tis->bindParam(':name', $name);$tis->bindParam(':age', $age);$tis->execute();

你可以注意到,唯一的變化是我使用 :name 和 :age 作為占位符,然后將變量映射到它們。冒號在參數之前使用,讓 PDO 知道該位置是一個變量,這非常重要。

你也可以類似地使用 bindValue() 來使用命名參數直接映射值。

獲取數據

PDO 在獲取數據時非常豐富,它實際上提供了許多格式來從數據庫中獲取數據。

你可以使用 PDO::FETCH_ASSOC 來獲取關聯數組,PDO::FETCH_NUM 來獲取數字數組,使用 PDO::FETCH_OBJ 來獲取對象數組。

$tis = $conn->prepare("SELECT * FROM STUDENTS");$tis->execute();$result = $tis->fetchAll(PDO::FETCH_ASSOC);

你可以看到我使用了 fetchAll,因為我想要所有匹配的記錄。如果只需要一行,你可以簡單地使用 fetch。

現在我們已經獲取了數據,現在是時候循環它了,這非常簡單。

foreach ($result as $lnu){ echo $lnu['name']; echo $lnu['age']."<br>";}

你可以看到,因為我請求了關聯數組,所以我正在按名稱訪問各個成員。

雖然在定義希望如何傳輸遞數據方面沒有要求,但在定義 $conn 變量本身時,實際上可以將其設置為默認值。

你需要做的就是創建一個 $options 數組,你可以在其中放入所有默認配置,只需在 $conn 變量中傳遞數組即可。

$options = [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,];$conn = new PDO($dsn, $user, $pass, $options);

看完上述內容,你們對PHPPDO簡單教程是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

进贤县| 南郑县| 田东县| 宁波市| 丽江市| 锦屏县| 都江堰市| 剑阁县| 南漳县| 武穴市| 额济纳旗| 格尔木市| 贵州省| 宁城县| 凉城县| 綦江县| 凤城市| 冷水江市| 神池县| 新丰县| 涟源市| 固原市| 长岭县| 申扎县| 崇礼县| 张家口市| 眉山市| 石渠县| 循化| 承德市| 萍乡市| 洛南县| 河源市| 米易县| 长泰县| 甘孜县| 天全县| 乡宁县| 平安县| 许昌县| 保山市|