PDO预处理方法操作数据库

<?php

//连接mysql
$pdo=new PDO('mysql:host=localhost;dbname=test','root','123456');
//连接oracle
$pdo = new PDO('oci:dbname=//localhost;1521/test','root','123456');


//设置客户端字符集为utf-8
$pdo->exec('set names utf8');


//插入数据
$sql = "insert into user1(username,password) values('user12','123456')";
echo $pdo->exec($sql);


//删除数据
$sql = "delete from user1 where id=12";
echo $pdo->exec($sql);


//修改数据
$sql = "update user1 set password='234567' where id='11'";
echo $pdo->exec($sql);


//查询数据
$sql = "select * from user1";
$smt = $pdo->query($sql);
//返回关联数组
$row = $smt->fetchAll(PDO::FETCH_ASSOC);
print_r($row);


//预处理增删改查操作:
//预处理不能减少mysql的执行速度,能做到是减少mysql语句发送到服务器的时间和次数,防止sql注入,提高安全,减少风险


$sql="insert into user1(username,password) values(user12,'123456')";
$smt=$pdo->prepare($sql);
//返回结果是true或false
$res=$smt->execute();
//判断mysql语句是否执行成功
if($smt->execute()){
    echo '数据操作成功';
}else{
    echo '数据操作失败';
}


//获取操作了多少条数据
$sql='delete from user1 where id>5';
$smt=$pdo->prepare($sql);

if($smt->execute()){
    $tot=$smt->rowCount();
    echo '数据操作成功,成功删除'.$tot.'行!';
}else{
    echo '数据操作失败!';
}


//获取一个表的总行数 方法二比方法一高效

//方法一:
$sql='select * from user1';
$smt=$pdo->prepare($sql);

if($smt->execute()){
    $tot=$smt->rowCount();
    echo '查询了'.$tot.'行';
}else{
    echo '数据查询失败';
}

//方法二:
$sql='select count(*) from user1';
$smt=$pdo->prepare($sql);
$smt->execute();
$rows=$smt->fetchAll(PDO::FETCH_NUM);
echo $rows[0][0];

//方法三:
$sql='select count(*) from user1';
$smt=$pdo->prepare($sql);
$smt->execute();
$tot=$smt->fetchColumn();
echo $tot;


//给预处理最大化绑值
$sql='select * from user1 where id>? and id<?';
$smt=$pdo->prepare($sql);
$smt->bindValue(1,2);
$smt->bindValue(2,5);

$smt->execute();
$rows=$smt->fetchAll(PDO::FETCH_ASSOC);

echo '<pre>';
print_r($rows);
echo '</pre>';
?>



猜你喜欢

转载自blog.csdn.net/shaoyanlun/article/details/80704932