**PDO连接数据库**
''内的字符串不需要再添加''$pdo对象=new PDO('数据库名:host=主机名;dbname=库名','用户名','密码');
**PDO不是每次都能成功连接数据库,因此需要tyr-catch包裹**
try{
PDO连接
}catch(PDOException $e){
echo $e->getMessage();
}
**解决中文乱码**
读取:$pdo对象->query('set names utf8');
插入:$pdo对象->exec('set names utf8');
**操作数据库(可以增、删、改,无法获取查询的结果)**
$pdo对象->exec('sql语句')
增删改返回布尔值
**预处理操作数据库(可获取查询结果)------------------------------------------------**
**预处理语句**
$数据库连接对象->prepare('sql语句'); **其中参数用?占位符来代替**
$预处理返回对象->execute(array('参数1','参数2',...)/['参数1','参数2',...]);
**预处理查询操作**
//绑定字段值
$预处理对象->bindColumn(1,$绑定第一个字段值的变量);
$预处理对象->bindColumn(2,$绑定第二个字段值的变量);
//返回数据库中每一条内容,但内容无法获取,然后读取下一条,相当于计数器
$预处理对象->fetch(PDO::FETCH_COLUMN);
for($i=0;$row=$预处理对象->fetch(PDO::FETCH_COLUMN);$i++)
{
$arr[$i]=array('xx'=>$绑定的对象,'xx'=>绑定的对象,...);
}
代码示例:
<?php
try{
$pdo=new PDO('mysql:host=localhost;dbname=day2db','root','dyl1234');
}catch(PEDException $e){
echo '错误信息为:'.$e->getMessage();
}
?>
$PDO对象->exec(‘sql语句’)操作数据库
//引入已有单例php文件
require 'singletonPDO.php';
$pdo=singlePdo::getPdo();
$pdo->exec('set names utf8');
//增
$sql="insert into userinfo values('cathy','247')";
//删
$sql2="delete from userinfo where password='247'";
//改
$sql3="update userinfo set password='111' where userName='kate'";
//查
$sql4='select * from userinfo';
$res=$pdo->exec($sql4);
print_r($res);
预处理操作数据库
<?php
echo '<pre>';
//引入单例PDO文件
require_once 'singletonPDO.php';
$pdo=singlePdo::getPdo();
$pdo->exec('set names utf8');
$sql='select * from userinfo';
$pre=$pdo->prepare($sql);
$res=$pre->execute();
//绑定字段值
$pre->bindColumn(1,$uname);
$pre->bindColumn(2,$password);
//显示读取结果
$info=[];
for($i=0;$row=$pre->fetch(PDO::FETCH_COLUMN);$i++)
{
$info[$i]=array('userName'=>$uname,'password'=>$password);
}
print_r($info);
?>