匿名参数 + 索引数组
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
if($db){
echo '连接成功';
}
// 匿名参数
$sql = 'INSERT `staff` SET `name` =?,'sex'=?,`email`=?;';
$stmt = $db->prepare($sql);
// 索引数组
$data = ['张三', 0, 'zhangsan@qq.com'];
// 执行sql
$stmt->execute($data);
$stmt->debugDumpParams();
echo '新增成功, id= ' . $db->lastInsertId() . '<br>';
命名参数 + 关联数组
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
if($db){
echo '连接成功';
}
// 命名参数: ":name"
$sql = 'INSERT `staff` SET `name` = :name,'sex'= :name,`email`= :name;';
$stmt = $db->prepare($sql);
// 关联数组
$data = ['name'=>'赵四', 'sex'=>1, 'email'=>'lisi@qq.com'];
// 执行sql
$stmt->execute($data);
echo '新增成功, id= ' . $db->lastInsertId() . '<br>';
参数绑定:值绑定
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
if($db){
echo '连接成功';
}
// 值绑定:bindValue()
list($name,$sex,$email)=['李五', 0, 'liwu@qq.com'];
$stmt->bindValue(1,$name.PDO::PARAM_STR);
$stmt->bindValue(2,$name.PDO::PARAM_INT);
$stmt->bindValue(3,$name.PDO::PARAM_STR);
// 执行sql
$stmt->execute();
echo '新增成功, id= ' . $db->lastInsertId() . '<br>';
参数绑定:引用绑定
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
if($db){
echo '连接成功';
}
// 引用绑定:bindparam
$stmt->bindparam(1, $name, PDO::PARAM_STR);
$stmt->bindparam(1, $name, PDO::PARAM_INT);
$stmt->bindparam(1, $name, PDO::PARAM_STR);
list($name, $sex, $email)=['钱六', 1, 'qianliu@qq.com'];
// 执行sql
$stmt->execute();
echo '新增成功, id= ' . $db->lastInsertId() . '<br>';
更新操作:UPDATE
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
$sql = <<< SQL
UPDATE `staff`
SET `name`= ?,`sex`= ?,`email`= ?
WHERE `id` = ? ;
SQL;
if(false === strpos($sql, 'where')){
exit('禁止无条件更新');
}
// 预对象处理
$stmt = $db->prepare($sql);
$data = ['孙七', 0, 'sunqi@qq.com', 1];
if($stmt->execute($data)){
if($stmt->rowCount() > 0){
echo '成功更新' . $stmt->rowCount() . '条记录';
}
} else {
echo '更新失败';
print_r($stmt->errorInfo());
} else{
echo '执行失败';
print_r($stmt->errorInfo());
}
删除操作: DELETE
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu','root', 'root');
$sql = <<< SQL
DELETE `staff`
SET `name`= ?,`sex`= ?,`email`= ?
WHERE `id` = ? ;
SQL;
if(false === strpos($sql, 'where')){
exit('禁止无条件删除');
}
// 预对象处理
$stmt = $db->prepare($sql);
if($stmt->rowCount([1])){
if($stmt->rowCount() > 0){
echo '成功删除' . $stmt->rowCount() . '条记录';
} else{
echo '没有记录被删除';
print_r($stmt->errorIofo());
}
} else{
echo '执行失败''
print_r($stmt->errorInfo());
}
查询:fetch() + while()
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu', 'root', 'root');
// CURD: SELECT
$sql = 'SELECT `id`,`name`,`email` FROM `staff` LIMIT ?;';
// 预对象处理
$stmt = $db->prepare($sql);
// 查询:fetch+while
$stmt->binValue(1, 2,PDO::PARAM_INT);
if($stmt->execute()){
while($staff = $stmt->fetch(PDO::FETCH_ASSOC)){
prinf('<pre>%s</pre>',print_r($staff,true));
}
} else{
echo '查询失败';
print_r($stmt->errorInfo());
}
查询:fetchAll() + foreach()
namespace pdo_edu;
use PDO;
// 连接数据库
$db = new PDO('mysql:dbname=phpedu', 'root', 'root');
// CURD: SELECT
$sql = 'SELECT `id`,`name`,`email` FROM `staff` LIMIT ?;';
// 预对象处理
$stmt = $db->prepare($sql);
$stmt->bindValue(1, 3, PDO::PARAM_INT);
// 执行sql
if ($stmt->execute()) {
// fetchAll():获取全部满足条件的记录
$staff = $stmt->fetchAll(PDO::FETCH_ASSOC);
// foreach()
foreach($staff as $staff){
printf('<pre>%s</pre>',print_r($staff,true));
}
} else {
echo '查询失败';
print_r($stmt->errorInfo());
}