
批改狀態(tài):合格
老師批語(yǔ):數(shù)據(jù)庫(kù), 其實(shí)沒(méi)你想像的困難吧
<pre>
├─db 數(shù)據(jù)庫(kù)目錄
│ ├─db_curd 增刪改查目錄
│ │ ├─db_insert.php 插入類
│ │ ├─db_delete.php 刪除類
│ │ ├─db_update.php 更新類
│ │ └─db_select.php 查詢類
│ ├─db_connect.php 連接類
│ ├─db_config.php 數(shù)據(jù)庫(kù)配置文件
</pre>
//數(shù)據(jù)庫(kù)配置
namespace db_config;
// 數(shù)據(jù)庫(kù)連接配置參數(shù)
return [
//1. 數(shù)據(jù)庫(kù)類型
'type'=>$type ?? 'mysql',
//2. 數(shù)據(jù)庫(kù)默認(rèn)主機(jī)
'host'=>$host ?? 'localhost',
//3. 默認(rèn)數(shù)據(jù)庫(kù)
'dbname'=>$dbname ?? 'shopping',
//4. 默認(rèn)字符編碼集
'charset'=>$charset ?? 'utf8',
//5. 默認(rèn)端口號(hào)
'port'=>$port ?? '3306',
//6. 默認(rèn)用戶名
'username'=>$username ?? 'root',
//7. 默認(rèn)用戶密碼
'password'=>$password ?? 'root',
];
//連接數(shù)據(jù)庫(kù)
namespace db_connect;
//導(dǎo)入PDO類和導(dǎo)入異常類
use PDO;
use Exception;
//1. 加載配置參數(shù)
$cfg = require 'db_config.php';
$type = $cfg['type'];
$host = $cfg['host'];
$dbname = $cfg['dbname'];
$username = $cfg['username'];
$password = $cfg['password'];
//2. 創(chuàng)建數(shù)據(jù)源
$dsn = sprintf('%s:host=%s;dbname=%s', $type, $host, $dbname);
//3. PDO方式連接數(shù)據(jù)庫(kù)
try {
//初始化一個(gè)PDO對(duì)象
$pdo = new PDO($dsn, $username, $password);
} catch (Exception $e) {
die($e->getMessage());
}
//新增記錄
namespace db\db_curd\db_insert;
//導(dǎo)入PDO類
use PDO;
//1. 連接數(shù)據(jù)庫(kù)
require '../db_connect.php';
//2. 操作數(shù)據(jù)庫(kù)
//2.1 新增記錄
//準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
$sql = "INSERT `productinfo` SET `p_name`=?, `category_id`=?, `sku_id`=?, `p_stock`=?, `orig_price`=?, `mark_price`=?, `p_desc`=?, `p_img`=?, `p_time`=?";
//定義預(yù)處理語(yǔ)句
$stmt = $pdo->prepare($sql);
//定義數(shù)據(jù)
$data = ['黑莓手機(jī)SK5', 'DZ02', 12315156, 99, 9999.99, 6999.99, '16G運(yùn)行內(nèi)存,128G存儲(chǔ)內(nèi)存', 'FAJKFNALLAILA1238454', time()];
//執(zhí)行預(yù)處理語(yǔ)句
$stmt->execute($data);
//2.2 判斷是否執(zhí)行成功
if ($stmt->rowCount() === 1) {
echo '新增成功,新增記錄的主鍵是:' . $pdo->lastInsertId();
} else {
echo '新增失敗';
print_r($stmt->errorInfo());
};
//3. 關(guān)閉連接
unset($pdo);
//刪除記錄
namespace db\db_curd\db_delete;
//導(dǎo)入PDO類
use PDO;
//1. 連接數(shù)據(jù)庫(kù)
require '../db_connect.php';
//2. 操作數(shù)據(jù)庫(kù)
//2.1 刪除記錄
//準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
$sql = "DELETE FROM `productinfo` WHERE `sku_id`=:sku_id";
//定義預(yù)處理語(yǔ)句
$stmt = $pdo->prepare($sql);
//定義數(shù)據(jù)
$data = [':sku_id'=>12315153];
//執(zhí)行預(yù)處理語(yǔ)句
$stmt->execute($data);
//2.2 判斷是否執(zhí)行成功
if ($stmt->rowCount() >= 1) {
echo '刪除成功,刪除記錄數(shù):' . $stmt->rowCount();
} else {
echo '刪除失敗';
print_r($stmt->errorInfo());
};
//3. 關(guān)閉連接
unset($pdo);
//更新記錄
namespace db\db_curd\db_update;
//導(dǎo)入PDO類
use PDO;
//1. 連接數(shù)據(jù)庫(kù)
require '../db_connect.php';
//2. 操作數(shù)據(jù)庫(kù)
//2.1 更新記錄
//準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
$sql = "UPDATE `productinfo` SET `p_name`=? WHERE `sku_id`=?";
//定義預(yù)處理語(yǔ)句
$stmt = $pdo->prepare($sql);
//定義數(shù)據(jù)
$data = ['黑莓手機(jī)SK6', 12315154];
//執(zhí)行預(yù)處理語(yǔ)句
$stmt->execute($data);
//2.2 判斷是否執(zhí)行成功
if ($stmt->rowCount() >= 1) {
echo '更新成功,更新記錄數(shù):' . $stmt->rowCount();
} else {
echo '刪除失敗';
print_r($stmt->errorInfo());
};
//3. 關(guān)閉連接
unset($pdo);
//單條查詢記錄
namespace db\db_curd\db_select;
//導(dǎo)入PDO類
use PDO;
//1. 連接數(shù)據(jù)庫(kù)
require '../db_connect.php';
//2. 操作數(shù)據(jù)庫(kù)
//2.1 查詢記錄
//準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
$sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";
//定義預(yù)處理語(yǔ)句
$stmt = $pdo->prepare($sql);
//定義數(shù)據(jù)
$data = [10, 9999.99];
//執(zhí)行預(yù)處理語(yǔ)句
$stmt->execute($data);
//2.2 判斷是單條查詢還是多條查詢及返回查詢結(jié)果
switch ($stmt->rowCount()) {
case ($stmt->rowCount() === 1):
$staff = $stmt->fetch(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>', print_r($staff, true));
break;
case ($stmt->rowCount() > 1):
$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>', print_r($staffs, true));
break;
default:
echo '查詢失敗';
print_r($stmt->errorInfo());
}
//3. 關(guān)閉連接
unset($pdo);
//單條查詢記錄
namespace db\db_curd\db_select;
//導(dǎo)入PDO類
use PDO;
//1. 連接數(shù)據(jù)庫(kù)
require '../db_connect.php';
//2. 操作數(shù)據(jù)庫(kù)
//2.1 查詢記錄
//準(zhǔn)備一條帶有參數(shù)標(biāo)記的SQL語(yǔ)句
$sql = "SELECT `id`, `p_name` FROM `productinfo` WHERE `p_stock`<? and `mark_price`<?";
//定義預(yù)處理語(yǔ)句
$stmt = $pdo->prepare($sql);
//定義數(shù)據(jù)
$data = [10, 9999.99];
//執(zhí)行預(yù)處理語(yǔ)句
$stmt->execute($data);
//2.2 判斷是單條查詢還是多條查詢及返回查詢結(jié)果
switch ($stmt->rowCount()) {
case ($stmt->rowCount() === 1):
$staff = $stmt->fetch(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>', print_r($staff, true));
break;
case ($stmt->rowCount() > 1):
$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>', print_r($staffs, true));
break;
default:
echo '查詢失敗';
print_r($stmt->errorInfo());
}
//3. 關(guān)閉連接
unset($pdo);
微信掃碼
關(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)