pdo开启与连接
- 查看php配置(检测pdo是否开启)
<?php
phpinfo();
pdo连接模板
- conflg部分
<?php
// 数据库的配置参数
return [
'type' => 'mysql',
'host' => '127.0.0.1',
'dbname' => 'phpedu',
'port' => '3306',
'charset' => 'utf8mb4',
'username' => 'root',
'password' => 'root',
];
<?php
// 导入配置文件
$config = require __DIR__ . '/config.php';
//extract类似list函数 将关联数组成员解析成独立变量
extract($config);
$dsn = sprintf('%s:dbname=%s;',$type,$dbname);
try {
// pdo构造方法,实例
$pdo =new PDO($dsn, $username, $password);
// $pdo =new PDO('mysql:dbname=phpedu','root','root');
// 设置结果集的返回类型
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
// var_dump($pdo,'连接成功');
} catch (PDOException $e) {
die( '连接失败:' . $e->getMessage());
}
`
pdo查询
<?php
// 1.连接数据库
use PhpMyAdmin\Sql;
require __DIR__.'/connect.php';
// 2.执行操作(预处理)
// sql语句注意事项:语句全大写,表名和反引号加反引号,?匿名占位符
$sql = 'SELECT* FROM `staffs` WHERE `salary` BETWEEN ? AND ?;';
$stmt = $pdo->prepare($sql);
// var_dump($stmt);
// 预处理语句,5000和8000对应sql语句?
$stmt->execute([5000,8000]);
// $stmt->debugDumpParams();
// $row=$stmt->fetch();
// print_r($row);
// $rows =[];
// // 结果集保存在stmt,fetch方法只能输出一个
// while($row=$stmt->fetch()){
// $rows[]=$row;
// }
// foreach($rows as $row){
// echo print_r($row,true);'<br>';
// }
$rows=$stmt->fetchAll();
foreach($rows as $row){
echo print_r(array_slice($row,0,5),true),'<br>';
}
分页查询
<?php
// 1.连接数据库
use PhpMyAdmin\Sql;
require __DIR__ . '/connect.php';
// 2.执行操作(预处理)
// sql语句注意事项:语句全大写,表名和反引号加反引号,?匿名占位符
$sql = 'SELECT* FROM `staffs` WHERE `salary` BETWEEN ? AND ? LIMIT ?;';
$stmt = $pdo->prepare($sql);
// var_dump($stmt);
// 预处理语句,5000和8000,5对应sql语句?
$start = 5000;
$end=8000;
$num=5;
// bindParam方法绑定到sql(参数位置,变量名,输出类型)
$stmt->bindParam(1,$start,PDO::PARAM_INT);
$stmt->bindParam(2, $end, PDO::PARAM_INT);
$stmt->bindParam(3, $num, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
echo print_r(array_slice($row, 0, 5), true), '<br>';
}