
批改狀態(tài):合格
老師批語:對于查詢結果集的數(shù)量統(tǒng)計: rowCount()有時并不合適, 具體方案, 你到php手冊上可以查到, 考考你去找找看
1、PDO連接
<?php
namespace db_PDO;
use Exception;
use PDO;
// 準備連接數(shù)據(jù)
$arguments= require 'config.php';
extract($arguments);
$dsn=sprintf("{$type}:host={$host};dbname={$dbname};charset={$charset};port={$port}",$type,$host,$dbname,$charset,$port);
// 連接數(shù)據(jù)庫
try{
$db= new PDO($dsn,$username,$password);
}catch(Exception $e)
{
echo $e->getMessage();
}
/*
測試連接
// var_dump($db);
$sql='select * FROM `students`';
$smit=$db->query($sql);
// $res=$smit->fetch(PDO::FETCH_ASSOC);
// print_r($res);
$res=$smit->fetchAll(PDO::FETCH_NUM);
print_r($res);
// 關閉數(shù)據(jù)庫
// $db=null;
unset($db);
*/
2、PDO插入數(shù)據(jù)
<?php
require 'contect.php';
// 準備查詢語句;
$sql="insert `students` SET `name`=?,`age`=?,sex=? ";
// sql語句預處理
$stmt=$db->prepare($sql);
// var_dump($stmt);
$data=['cqw',30,1];
// 執(zhí)行預處理語句;
$stmt->execute($data);
// $stmt->debugDumpParams();
echo ($stmt->rowCount()===1)?'新增成功,新增的id是:'.$db->lastInsertId() : '新增失敗'.$stmt->errorInfo();
unset($db);
3、PDO更新操作
<?php
require 'contect.php';
// 準備查詢語句;
$sql="update `students` SET `name`=?,`age`=?,sex=? WHERE `id`=?";
// sql語句預處理
$stmt=$db->prepare($sql);
// var_dump($stmt);
$data=['xjw',31,1,3];
// 執(zhí)行預處理語句;
$stmt->execute($data);
// $stmt->debugDumpParams();
echo ($stmt->rowCount()===1) ? '更新成功': '更新失敗';
unset($db);
4、PDO查詢操作
<?php
require 'contect.php';
// 準備查詢語句;
$sql='select * FROM `students`';
// sql語句預處理
$stmt=$db->prepare($sql);
// var_dump($stmt);
// 執(zhí)行預處理語句;
$stmt->execute();
/*
返回單條數(shù)據(jù),指針下移
$res=$stmt->fetch(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>',print_r($res,true));
$res=$stmt->fetch(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>',print_r($res,true));
*/
$res=$stmt->fetchAll(PDO::FETCH_ASSOC);
printf('<pre>%s</pre>',print_r($res,true));
unset($db);
5、PDO刪除數(shù)據(jù)
<?php
require 'contect.php';
// 準備查詢語句;
$sql="delete FROM `students` WHERE `id`=?";
// sql語句預處理
$stmt=$db->prepare($sql);
// var_dump($stmt);
$data=[$_GET['id']];
// 執(zhí)行預處理語句;
$stmt->execute($data);
// $stmt->debugDumpParams();
echo ($stmt->rowCount()===1) ? '更新成功': '更新失敗';
unset($db);
1.PDO操作數(shù)據(jù)庫連接所需參數(shù)($db=new PDO($dsn,$username,$password
)):
$dsn='type:host=$host;dbname=$dbname;charset=$charset;port=$port;'
$username='phpedu';
$password;
2.PDO 預處理(prepare()
):$stmt=$db->prepare($sql);
3.PDO 執(zhí)行(execute()
):$stmt->execute();
4.PDO斷開連接:$db=null
或者unset($db)
;
5.數(shù)據(jù)庫增刪改查語句():
增加:INSERT `表名` SET `字段`='值'....`字段`='值';
刪除:DELETE FROM `表名` WHERE `字段`='值';
更新: UPDATE `表名` SET?。嘧侄危啵剑е担В嘧侄危啵剑е担?/span>WHERE `字段`='值';
查詢:SELECT * FROM `表名` where `字段`='值';*可以替換需要查詢字段
6.在sql語句中可以用(?
->數(shù)組對應),(:age
跟關聯(lián)數(shù)組對應)代替,進行prepare($sql)預處理,在execute($data);綁定數(shù)據(jù);
7.查詢時返回的結果集可以通過fetch()或者fetchAll()來返回(PDO::FETCH_ASSOC|FETCH_NUM|FETCH_BOTH)
8.$stmt->rowCount():受影響的行數(shù);PDO::lastInsertId():最后插入ID號;
9.$stmt->errorInfo():錯誤信息;$stmt->errorCode():錯誤代碼;
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號