pdo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<body>
 
<?php
//.访问不同的数据库(举例)
//造对象
$dsn = "mysql:dbname=test1;host=localhost";
$pdo = new PDO($dsn,"root","123");
//写sql语句
$sql = "update nation set name='兽族'where code='n002'";
//执行sql语句
$a = $pdo->exec($sql);
 
 
 
//带上事务功能(举例中对于加入的东西其中一个与数据库重复,则都被回滚)
//造对象
$dsn = "mysql:dbname=test1;host=localhost";
$pdo = new PDO($dsn,"root","123");
//设置异常模式
$pdo->setAttribute(pdo::ATTR_ERRMODE,pdo::ERRMODE_EXCEPTION);//(模式的名称 模式的值)
//写sql语句
$sql1 = "insert into nation values('n005','精灵族') ";
$sql2 = "insert into nation values('n006','人族') ";
try
{   //启动事物
    $pdo->beginTransaction();
    $pdo->exec($sql1);
    $pdo->exec($sql2);
    //提交事务
   $pdo->commit();
}
catch(pdoexception $e)// pdo异常的一个类型
{
    //$e->getMessage();
    //回滚
    $pdo->rollBack();
}
//另一个与catch相同的用法是final
 
 
 
//防止sql注入(举例)
//造对象
$dsn = "mysql:dbname=test1;host=localhost";
$pdo = new PDO($dsn,"root","123");
//写sql语句
$sqll = "insert into nation values(?,?)";
//准备sql语句,返回statement对象
$st = $pdo->prepare($sqll);
//绑定参数
    /*$st->bindparam(1,$code);
    $st->bindparam(2,$name);
     
    $code="n007";
    $name="矮人族";*/ //或者用简单方法
                     $attr = array("n008","魔族");
     
//执行提交,不用给sql语句了,直接传过去了
//$st->execute();
$st->execute($attr);
//预处理语句里面用?占位的,给数组的时候要给索引数组<br><br>//防止sql注入或者用name占用位置(举例)//造对象
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");
 
//写SQL语句,预处理语句,使用name占位
$sql = "insert into nation values(:code,:name)";
 
//准备执行
$st = $pdo->prepare($sql);
 
//绑定参数
/*$st->bindParam(":code",$code,PDO::PARAM_STR);
$st->bindParam(":name",$name,PDO::PARAM_STR);
 
$code="n024";
$name="狼族";*/
 
$attr = array("code"=>"n025","name"=>"虫族");
 
//执行
$st->execute($attr);
<br><br><br>
?>
 
 
</body>

  

  

posted @   学生Q  阅读(137)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
阅读排行:
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容
点击右上角即可分享
微信分享提示