一、PDO连接数据库。
数据库 :chat, 数据表:CONTENT ;
try{
$pdo = new PDO('mysql:host=127.0.0.1;dbname=chat','root','root');//连接数据库 chat库名
$pdo->exec("SET names utf8");//编码格式
}catch(PDOException $e){
exit($e->getMessage());
}
$pdo = null; //关闭数据库。
参数绑定
//对表中得列绑定
$stmt->bindColumn(1, $name); //通过列号绑定
$stmt->bindColumn('user_id ', $user_id ,PDO::PARAM_* ,20); //通过列名绑定 第三个参数设置数据类型,整数型,字符型等,第四个参数设置数据长度。
// 对sql 中的命名占位符绑定
bindParam()//必须使用变量进行传入
bindValue()//可以直接写到参数上
$calories = 150;
$stmt->bindParam(':calories', $calories, PDO::PARAM_INT);
$stmt->bindValue(':colour', 12, PDO::PARAM_INT);
二、查询数据
$sql = "SELECT id ,content,create_time,user_id FROM `CONTENT` WHERE `id` > :id1 && `id` <:id";//:id是命名占位符。反引号可加可不加。
//$stmt是PDOStatement类的对象
$stmt = $pdo->prepare($sql);
//以关联数组返回,
$stmt->setFetchMode(PDO::FETCH_ASSOC);
//参数绑定并查询
if($stmt->execute([':id'=>10,':id1'=>0])){
//吧结果集中的所有数据赋值给$ret
$ret = $stmt->fetchAll();
//从最后一次请求中抓取下一个结果。通过循环可以输出所有数据
//$ret = $stmt->fetch();
}else{
print_r($stmt->errorInfo());die;
}三、添加操作
rowCount()方法:返回受影响条数
errorlnfo()方法:错误提示
$sql ="INSERT INTO CONTENT (id,content,create_time,user_id) VALUES (:id,:content,:create_time,:user_id)";
$stmt = $pdo->prepare($sql);
//参数绑定
$id = null;
$content = "我的世界";
$create_time = time();
$user_id = 50;
$stmt -> bindParam(':id',$id);
$stmt -> bindParam(':content',$content,PDO::PARAM_STR,100);
$stmt -> bindParam(':create_time',$create_time,PDO::PARAM_INT);
$stmt -> bindParam(':user_id',$user_id,PDO::PARAM_INT);
//执行一条预处理语句
if ($stmt->execute()) {
echo $stmt->rowCoUnt();
}else{
exit(print_r($stmt->errorInfo(),true));
}
四、更新数据
$sql ="UPDATE CONTENT SET content = :content,create_time = :create_time WHERE id = :id";
其他跟添加一样。
五、删除数据
一般采用软删除。就是把利用一个删除时间字段,如果字段有时间则不显示。无数据就显示出来。
$sql ="DELETE FROM CONTENT WHERE id = :id";
其他与添加一样。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号