PDO连接数据库
- 语法
- 创建连接
$pdo = new PDO("数据库类型名称:host=主机地址;dbname=要连接的数据库名",db账号,db密码);
- 设置字符编码
$pdo -> exec('set names utf8');
- pdo执行sql语句
增:$sql = "insert into 表名 (字段名1,字段名2...) values (值1,值2...)";
删:$sql = "delete from 表名 where 条件";
改:$sql = "update 表名 set 字段=新值,字段=新值... where 条件";
查:$sql = "select * from 表名 where 条件";
- 输出执行sql语句后的结果
* $result = $pdo->exec($sql); //增、删、改的输出语法
* $result = $pdo->query($sql); //查询的输出语法
$result->fetchALL(PDO::FETCH_ASSOC);
说明:
- exec():主要操作增删改,操作的返回值是受影响的条数(也就是数字)
- query():主要操作查询,操作成功返回结果集(PDO对象),不能直接使用,需要解析
解析方法:- fetchALL():默认返回两种类型的混合数组
- fetchALL(PDO::FETCH_ASSOC):值返回关联数组
- fetchALL(PDO::FETCH_NUM):只返回索引数组
异常捕获
描述:pdo并不能保证每一次的连接都是成功的,so在db连接的时候需要添加一个保险操作,
这个就是异常捕获【try…catch】机制
语法:
try {
觉得可能出现会异常问题的代码
} catch (Exception $e) {
echo $e -> getMessage();
}
说明:try中的语法若无异常出现,catch中的代码会被忽略掉,
若出现异常,catch的代码会被执行,提炼出错误信息。
- 例子:
//PDO连接数据库
try {
$pdo = new PDO("mysql:host=localhost;dbname=web",'root','');
} catch (Exception $e) {
echo $e -> getMessage();
}
// $pdo = new PDO("mysql:host=localhost;dbname=web",'root','');
//设置字符编码
$pdo -> exec('set names utf8');
//pdo中执行spl语句
// $sql = "insert into tests values ('xiaohong','56789')"; 增
// $sql = "delete from tests where uname='xiaohong'"; 删
// $sql = "update tests set uname='flower',upass='45871' where uname='xiaoming'"; 改
$sql = "select * from tests where uname='tiezhu'"; //查
// $result = $pdo -> exec($sql);
$result = $pdo -> query($sql);
print_r($result -> fetchALL(PDO::FETCH_ASSOC));