您的位置:首页 > 编程语言 > PHP开发

PHP 操作数据库 PDO

2020-07-21 10:14 127 查看

PHP 操作数据库 PDO

  • pdo 链接 mysql
//PDO连接Mysql数据库
$dbms = 'mysql';
$dbname = 'demo1';
$host = 'localhost';
$user = 'root';
$pwd = 'root';
$dsn = "$dbms:host=$host;dbname=$dbname";

try {
$pdo = new PDO($dsn, $user, $pwd);
$pdo->exec("set names 'utf8'");
//设置异常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//echo 'PDO连接Mysql成功!' . '<br>';
//var_dump($pdo);

/**
事务
*/
//事务
try{
//开启事务
$pdo ->beginTransaction();

$pdo->exec("insert into admin set name='ceshi56',pwd='".md5(123456)."',sex='1',age='20' ");

//提交
$pdo->commit();

}catch(Exception $e){

//抓住try里面出现的错误,并且处理
//echo $e->getMessage(); //获取异常信息

//回滚
$pdo->rollBack();
}

}catch (Exception $e) {
echo $e->getMessage() . "<br>";
}
  • 查询mysql 数据 fetchAll , prepare , query
  1. fetchAll
$stmt = $pdo->query("select name,age,sex from admin ");
//$row_count = $stmt->rowCount(); // 返回条数 为空返回 0
//print_r($row_count);
$rows = $stmt->fetchAll(); //获取所有
for($i=0;$i<count($rows);$i++){
if($rows[$i]["sex"]=='0')
{
$sex = "女";
}else{

$sex = "男";
};
echo "姓名:".$rows[$i]["name"]."年龄:".$rows[$i]["age"]."性别:".$sex."<br>";
}
  1. prepare

使用Prepare和Execute方法
使用prepare和execute方法通常被认为是处理数据库查询的比较好的方法。首先,以SQL语句为参数调用PDO->prepare 方法,我们会得到一个返回的PDOStatment对象,并在这个对象上调用execute方法,然后 ,通过一个while循环重复调用PDOStatement->fetch方法来获取从数据库中查询的数据。

$stmt = $pdo->prepare("select name,age,sex from admin ");
if($stmt->execute()){
while($row = $stmt->fetch()){

if($row["sex"]=='0'){
$sex = "女";
}else{

$sex = "男";
};

//echo "姓名:".$row["name"];
echo "姓名:".$row["name"]."年龄:".$row["age"]."性别:".$sex."<br>";

}
}
上面这段代码就可以防范sql注入。为什么呢?
当调用 prepare() 时,查询语句已经发送给了数据库服务器,此时只有占位符 ? 发送过去,没有用户提交的数据;当调 用到 execute()时,用户提交过来的值才会传送给数据库,它们是分开传送的,两者独立的,SQL攻击者没有一点机会。

转自:https://blog.csdn.net/qq_16752369/article/details/77119622

  1. query

使用Query方法
首先看一下最快的、但却不是最好的方法—–query方法。

$stmt = $pdo->query("select name,age,sex from admin ");
while($row = $stmt->fetch()){
if($row["sex"]=='0'){
$sex = "女";
}else{

$sex = "男";
};

//echo "姓名:".$row["name"];
echo "姓名:".$row["name"]."年龄:".$row["age"]."性别:".$sex."<br>";

}
  • PDO 插入一条数据,修改,删除
//插入一条数据
if($pdo->exec("insert into admin set name='ceshi456',pwd='".md5(123456)."',sex='1',age='20' ")){
echo "插入成功";
echo $pdo->lastInsertId();

}

//修改数据
if($pdo->exec("update admin set name='ceshi123' where id='2' ")){
echo "修改成功";
echo "<br>";
}

//删除一条数据
if($pdo->exec("delete from admin where id='3' ")){
echo "删除成功";
echo "<br>";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: