PHP 链接多种数据库 的方法

数据库中  单词之间的空格(一个语句前面和后面做字符串拼接的时候最好留空格 )  可以随便加   其他地方  禁止随便加空格!!(加了 就报错)!

=====================总结=========================

数据库链接执行①:

1.链接数据库

$dsn = "mysql:dbname=mydb;host=localhost"; //数据源
$pdo = new PDO($dsn,"root","123");
//链接数据库   引号内部  不能 随便 加空格

2.①查询语句query()

$sql = "select * from nation";
$a = $pdo->query($sql); //执行查询
$arr = $a->fetchAll();
var_dump($arr);//返回二维数组 

  

 ②插入语句 exec()

$sql = "insert into nation values('n077','数据')"
$a = $pdo->exec($sql); //执行其他语句,返回结果集

数据库链接执行②【等待执行  传入的数据  都能执行才可以执行  不然 就 所有数据都不能执行】

$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");

//设置异常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 

try
{
    //开启事务
    $pdo ->beginTransaction(); 
    
    $sql1 = "insert into nation values('n080','是删')";
    $sql2 = "insert into nation values('n070','好几款')";
    $sql3 = "insert into nation values('n075','好几款')";
    
    $pdo->exec($sql1);
    $pdo->exec($sql2);
    $pdo->exec($sql3);
    
    //提交
    $pdo->commit();
}
catch(Exception $e)
{
    //抓住try里面出现的错误,并且处理
    //echo $e->getMessage(); //获取异常信息
    
    //回滚
    $pdo->rollBack();
}
//final()
//{
    //最终执行,无论以上try代码有没有出错,都会执行
//}
try catch

===============防止sql注入攻击===============

方法一   ? 方法  只可以使用   索引

 1 <?php
 2 
 3 //预处理语句防止SQL注入
 4 $dsn = "mysql:dbname=mydb;host=localhost";
 5 $pdo = new PDO($dsn,"root","123");
 6 //$code = "n005";
 7 //SQL语句里面需要加占位符 ?
 8 $sql = "select * from nation where code=?";
 9 //准备执行,返回PDOStatement对象
10 $st = $pdo->prepare($sql);
11 //调用绑定参数的方法来绑定参数
12 $st->bindParam(1,$code);
13 $name = "测试1";
14 //执行方法
15 $attr = $st->fetchAll();
16 var_dump($attr);
17 
18 ?>
未简化方法(逐个赋值)bindParam

 

 1 <?php
 2 
 3 //预处理语句防止SQL注入
 4 $dsn = "mysql:dbname=mydb;host=localhost";
 5 $pdo = new PDO($dsn,"root","123");
 6 
 7 //SQL语句里面需要加占位符 ?
 8 $sql = "insert into nation values(?,?)";
 9 
10 //准备执行,返回PDOStatement对象
11 $st = $pdo->prepare($sql);
12 //索引数组
13 $attr = array("n006","测试2");
14 //执行方法
15 $st->execute($attr);
16 $attr = $st->fetchAll();
17 var_dump($attr);
18 
19 ?>
?的简化方法数组赋值

方法一   名称  方法    关联  有name的表单 (常用)

复杂方法 单个赋值

<?php
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");

占位符是字符串
$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 = "n007";
$name = "测试3";

$st->execute();


?>
单个赋值 bindparam(与? 不同之处PDO::PARAM_STR)

简化  将单个赋值  数组赋值(有关键字 name值)

1 <form action="addchuli.php" method="post">
2     <div>代号:<input type="text" name="code" /></div>
3     <div>名称:<input type="text" name="name" /></div>
4     <input type="submit" value="添加" />
5 </form>
add.php
<?php
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");
//占位符是字符串
$sql = "insert into nation values(:code,:name)";
$st = $pdo->prepare($sql);
$st->execute($_POST);{这里是上一页传过来的 post 数组}
addchuli.php数组方式提交

 

  

 

转载于:https://www.cnblogs.com/ordinaryk/p/6237527.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值