
批改狀態(tài):合格
老師批語:
<?php
namespace php_edu;
use PDO;
/**
* 數(shù)據(jù)庫常用操作
* 1. 讀操作: select
* 2. 寫操作: insert,update,delete
* 簡(jiǎn)稱: CURD, 增刪改查
*/
// 1. 連接數(shù)據(jù)庫
require __DIR__ . '/config/connect.php';
// 2. CURD: INSERT
/**
* PDO預(yù)處理
* 為什么要用預(yù)處理?
* 1. 防止SQL注入攻擊, 2. 數(shù)據(jù)延遲綁定
* (編程時(shí)只寫SQL語句模板,執(zhí)行SQL時(shí)再給占位符綁定真實(shí)數(shù)據(jù))
* 預(yù)處理過程:
* 1. 創(chuàng)建SQL語句模板對(duì)象: 數(shù)據(jù)使用占位符表示
* 2. 執(zhí)行SQL語句,根據(jù)操作類型(寫/讀),讀返回結(jié)果集/數(shù)組, 寫返回受影響的記錄數(shù)量
*/
// INSERT 插入
// INSERT 表名 SET 字段1=值1, 字段2=值2, ....
// SQL語句的推薦規(guī)范:
// 1. 關(guān)鍵字全大寫
// 2. 表名,字段名使用反引號(hào)做為定界符
$sql = 'INSERT `myhome` SET `name` = ?, `sex` = ?, `email` = ?';
// 1. 創(chuàng)建SQL語句模板對(duì)象
$stmt = $db->prepare($sql);
// var_dump($stmt);
// 2. 執(zhí)行SQL語句
$stmt->execute(['爸爸', 0, 'father@qq.com']);
$stmt->execute(['媽媽', 1, 'mother@qq.com']);
$stmt->execute(['爺爺', 0, 'grandpa@qq.com']);
$stmt->execute(['奶奶', 1, 'grandma@qq.com']);
$stmt->execute(['哥哥', 0, 'brother@qq.com']);
$stmt->execute(['姐姐', 1, 'sister@qq.com']);
$stmt->execute(['我自己', 0, 'myself@qq.com']);
// 成功
// $stmt->rowCount(): 返回受影響的記錄數(shù)量
if ($stmt->rowCount() > 0) {
echo '新增成功, 新增記錄的主鍵ID = ' . $db->lastInsertId();
} else {
echo '新增失敗';
print_r($stmt->errorInfo());
}
// 2. CURD: UPDATE 更新
$sql = 'UPDATE `myhome` SET `name` = ? WHERE `id` = ?';
$stmt = $db->prepare($sql);
$stmt->execute(['夏天', 1]);
if ($stmt->rowCount() > 0) {
echo '更新成功';
} else {
echo '更新失敗';
print_r($stmt->errorInfo());
}
echo '<hr>';
// 3. CURD: DELETE 刪除
$sql = 'DELETE FROM `myhome` WHERE `id` = ?';
$stmt = $db->prepare($sql);
$stmt->execute([2]);
if ($stmt->rowCount() > 0) {
echo '刪除成功';
} else {
echo '刪除失敗';
print_r($stmt->errorInfo());
}
echo '<hr>';
// 4. CURD: SELECT 單條查詢
// SELECT 字段列表 FROM 表名 WHERE 查詢條件
$sql = 'SELECT `id` ,`name` FROM `myhome` WHERE `id` > :id';
$stmt = $db->prepare($sql);
$stmt->execute(['id'=>6]);
// 單條查詢
$myhome = $stmt->fetch(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>', print_r($myhome, true));
echo '<hr>';
// 5. CURD: SELECT 多條查詢
// SELECT 字段列表 FROM 表名 WHERE 查詢條件
$sql = 'SELECT `id`,`name` FROM `myhome` WHERE `id` > :id';
$stmt = $db->prepare($sql);
$stmt->execute(['id' => 7]);
// fetchAll: 返回全部滿足條件的記錄集合,二維數(shù)組
$myhomes = $stmt->fetchAll();
// print_r($staffs);
foreach ($myhomes as $myhome) {
printf('<pre>%s</pre>', print_r($myhome, true));
}
數(shù)據(jù)庫更新如下:
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)