新聞中心
隨著互聯(lián)網(wǎng)的發(fā)展和普及,應(yīng)用程序的開發(fā)也變得越來越多樣化和復雜化。其中,數(shù)據(jù)庫是應(yīng)用程序中不可或缺的模塊,也是數(shù)據(jù)存儲和管理的重要手段。因此,學習和掌握數(shù)據(jù)庫的相關(guān)知識和技術(shù)顯得尤為重要。而本文將著重介紹PHP數(shù)據(jù)庫操作的范例實戰(zhàn)指南,幫助讀者快速掌握PHP操作數(shù)據(jù)庫的技術(shù)。

一、數(shù)據(jù)庫的概述
數(shù)據(jù)庫(Database)是指按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的設(shè)備和系統(tǒng)。在應(yīng)用程序中,數(shù)據(jù)庫是數(shù)據(jù)存儲的重要手段,也是應(yīng)用程序與數(shù)據(jù)交互的媒介。常見的數(shù)據(jù)庫類型有: MySQL、Oracle、SQL Server等。而本文將以MySQL數(shù)據(jù)庫為例,介紹PHP操作MySQL的范例實戰(zhàn)。
二、PHP操作MySQL
在PHP中,通過mysqli和PDO兩種擴展來實現(xiàn)操作MySQL。其中,mysqli擴展是比較常用的擴展,而PDO擴展則是面向?qū)ο蟮臄?shù)據(jù)庫操作擴展,更加靈活和具有通用性。因此,本文將重點介紹PDO擴展的操作方法。
1. 連接數(shù)據(jù)庫
在PHP中,連接數(shù)據(jù)庫有兩種方式,分別是面向?qū)ο蠛兔嫦蜻^程的方式。其中,面向過程的方式通常使用mysqli擴展,而面向?qū)ο蟮姆绞酵ǔJ褂肞DO擴展。具體代碼如下:
面向過程方式:
“`
$link=mysqli_connect(“l(fā)ocalhost”,”root”,”123456″,”test”) or die(“數(shù)據(jù)庫連接失敗”);
“`
面向?qū)ο蠓绞剑?/p>
“`
try{
$pdo=new PDO(“mysql:host=localhost;dbname=test;charset=utf8″,”root”,”123456″);
}catch(PDOException $e){
echo “數(shù)據(jù)庫連接失敗,原因是:”.$e->getMessage();
}
“`
上述代碼中,$link為mysqli連接數(shù)據(jù)庫的變量名,$pdo為PDO連接數(shù)據(jù)庫的變量名。其中,$link使用了mysqli_connect()函數(shù),而$pdo則使用了PDO類的構(gòu)造函數(shù)。
2. 查詢數(shù)據(jù)
在PHP中,查詢數(shù)據(jù)有兩種方式,分別是query()和prepare()方法。其中,query()方法是直接執(zhí)行SQL語句,而prepare()方法則是先預(yù)處理SQL語句,再執(zhí)行查詢。具體代碼如下:
query()方法:
“`
$sql=”SELECT * FROM user WHERE id=1″;
$result=$pdo->query($sql);
while($row=$result->fetch()){
var_dump($row);
}
“`
prepare()方法:
“`
$sql=”SELECT * FROM user WHERE id=?”;
$stmt=$pdo->prepare($sql);
$stmt->execute([1]);
while($row=$stmt->fetch()){
var_dump($row);
}
“`
上述代碼中,$result使用了query()方法,$stmt使用了prepare()方法,并通過execute()方法傳遞了參數(shù),最后通過fetch()方法獲取查詢結(jié)果。
3. 插入數(shù)據(jù)
在PHP中,插入數(shù)據(jù)使用了exec()和prepare()等方法。其中,exec()方法是直接執(zhí)行SQL語句,而prepare()方法則是先預(yù)處理SQL語句,再執(zhí)行插入操作。具體代碼如下:
exec()方法:
“`
$sql=”INSERT INTO user(name,age) VALUES(‘tom’,20)”;
$affectedRows=$pdo->exec($sql);
echo “影響的行數(shù)為:”.$affectedRows;
“`
prepare()方法:
“`
$sql=”INSERT INTO user(name,age) VALUES(?,?)”;
$stmt=$pdo->prepare($sql);
$stmt->execute([‘jerry’,22]);
$affectedRows=$stmt->rowCount();
echo “影響的行數(shù)為:”.$affectedRows;
“`
上述代碼中,$affectedRows獲取了影響的行數(shù)。在使用prepare()方法時,可以使用?號作為占位符,通過execute()方法傳遞參數(shù)進行插入操作。
4. 更新數(shù)據(jù)
在PHP中,更新數(shù)據(jù)使用了exec()和prepare()等方法。其中,exec()方法是直接執(zhí)行SQL語句,而prepare()方法則是先預(yù)處理SQL語句,再執(zhí)行更新操作。具體代碼如下:
exec()方法:
“`
$sql=”UPDATE user SET age=21 WHERE name=’tom'”;
$affectedRows=$pdo->exec($sql);
echo “影響的行數(shù)為:”.$affectedRows;
“`
prepare()方法:
“`
$sql=”UPDATE user SET age=? WHERE name=?”;
$stmt=$pdo->prepare($sql);
$stmt->execute([’23’,’jerry’]);
$affectedRows=$stmt->rowCount();
echo “影響的行數(shù)為:”.$affectedRows;
“`
那么,上述代碼中$affectedRows獲取了影響的行數(shù)。在使用prepare()方法時,同樣可以使用?號作為占位符,通過execute()方法傳遞參數(shù)進行更新操作。
5. 刪除數(shù)據(jù)
在PHP中,刪除數(shù)據(jù)使用了exec()和prepare()等方法。其中,exec()方法是直接執(zhí)行SQL語句,而prepare()方法則是先預(yù)處理SQL語句,再執(zhí)行刪除操作。具體代碼如下:
exec()方法:
“`
$sql=”DELETE FROM user WHERE name=’tom'”;
$affectedRows=$pdo->exec($sql);
echo “影響的行數(shù)為:”.$affectedRows;
“`
prepare()方法:
“`
$sql=”DELETE FROM user WHERE name=?”;
$stmt=$pdo->prepare($sql);
$stmt->execute([‘jerry’]);
$affectedRows=$stmt->rowCount();
echo “影響的行數(shù)為:”.$affectedRows;
“`
上述代碼中$affectedRows獲取了影響的行數(shù)。在使用prepare()方法時,同樣可以使用?號作為占位符,通過execute()方法傳遞參數(shù)進行刪除操作。
三、
通過上述范例實戰(zhàn)指南,相信讀者已經(jīng)初步掌握了PHP操作MySQL數(shù)據(jù)庫的方法和技巧。在實際應(yīng)用中,我們可以根據(jù)具體的業(yè)務(wù)需求和場景,結(jié)合數(shù)據(jù)庫的相關(guān)知識和技術(shù),靈活運用其中的方法和技巧,更好的完成數(shù)據(jù)庫操作。
而此外,在實際應(yīng)用中,還需要注意一些常見問題,如連接數(shù)據(jù)庫超時、SQL注入等。因此,在進行數(shù)據(jù)庫操作時,還需要具備一定的安全意識和技能。在此基礎(chǔ)上,我們可以更好的開發(fā)出高質(zhì)量的應(yīng)用程序,滿足不同用戶的需求和要求。
相關(guān)問題拓展閱讀:
- php如何讀取CSV大文件并且將其導入數(shù)據(jù)庫示例
php如何讀取CSV大文件并且將其導入數(shù)據(jù)庫示例
思路:
讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
示例
文件夾結(jié)構(gòu)
/
file.csv //csv大文件,這里只模擬三行數(shù)據(jù),不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入數(shù)據(jù)庫操作)
index.php //php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
* 讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
*/
//獲取數(shù)據(jù)庫實例
$dsn = ‘敏游mysql:dbname=test;host=127.0.0.1’;
$user = ‘root’;
$password = ”;
try {
$db = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo ‘Connection failed: ‘ . $e->getMessage();
}
//讀取file.csv文件
if (($handle = fopen(“file.csv”, “r”)) !== FALSE) {
while (($row = fgetcsv($handle, 1000, “,”)) !== FALSE) {
//寫入數(shù)據(jù)庫
$sth = $db->prepare(‘insert into test set name=:name,age=:age’);
$sth->bindParam(‘:name’,$row,PDO::PARAM_STR,255);
$sth->bindParam(‘:age’,$row,PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}
數(shù)據(jù)表
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT ” COLLATE ‘utf8mb4_bin’,
`age` INT(10) NULL DEFAULT ‘0’,
PRIMARY KEY (`id`)
)
COLLATE=’utf8mb4_bin’
ENGINE=InnoDB;
php 數(shù)據(jù)庫操作范例的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于php 數(shù)據(jù)庫操作范例,PHP數(shù)據(jù)庫操作范例實戰(zhàn)指南,php如何讀取CSV大文件并且將其導入數(shù)據(jù)庫示例的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務(wù),聯(lián)系電話:13518219792
網(wǎng)站欄目:PHP數(shù)據(jù)庫操作范例實戰(zhàn)指南(php數(shù)據(jù)庫操作范例)
網(wǎng)頁鏈接:http://m.fisionsoft.com.cn/article/djcohid.html


咨詢
建站咨詢
