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

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

数据库链接执行①:

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",""); //设置异常模式
$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注入攻击===============

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

 <?php

 //预处理语句防止SQL注入
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","");
//$code = "n005";
//SQL语句里面需要加占位符 ?
$sql = "select * from nation where code=?";
//准备执行,返回PDOStatement对象
$st = $pdo->prepare($sql);
//调用绑定参数的方法来绑定参数
$st->bindParam(,$code);
$name = "测试1";
//执行方法
$attr = $st->fetchAll();
var_dump($attr); ?>

未简化方法(逐个赋值)bindParam

 <?php

 //预处理语句防止SQL注入
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root",""); //SQL语句里面需要加占位符 ?
$sql = "insert into nation values(?,?)"; //准备执行,返回PDOStatement对象
$st = $pdo->prepare($sql);
//索引数组
$attr = array("n006","测试2");
//执行方法
$st->execute($attr);
$attr = $st->fetchAll();
var_dump($attr); ?>

?的简化方法数组赋值

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

复杂方法 单个赋值

<?php
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root",""); 占位符是字符串
$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值)

 <form action="addchuli.php" method="post">
<div>代号:<input type="text" name="code" /></div>
<div>名称:<input type="text" name="name" /></div>
<input type="submit" value="添加" />
</form>

add.php

<?php
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","");
//占位符是字符串
$sql = "insert into nation values(:code,:name)";
$st = $pdo->prepare($sql);
$st->execute($_POST);{这里是上一页传过来的 post 数组}

addchuli.php数组方式提交

  

最新文章

  1. okhttp-utils的封装之okhttp的使用
  2. const修饰虚函数
  3. NOIP2005 篝火晚会 解题报告
  4. linux开机启动增加tomcat启动项
  5. *[topcoder]AstronomicalRecords
  6. PHP5.4的变化关注---What has changed in PHP 5.4.x(转)
  7. C# 根据年月获得此月第一天和最后一天,并计算工作日
  8. 适合初学者的一个分布式环境搭建过程(spring boot + zookeeper + dubbo + mybatis + mysql)
  9. Tornado框架简介(二)
  10. redis使用总结(一)(redis客户端使用)
  11. Assets Library开发总结
  12. 【译】理解JavaScript中的柯里化
  13. History of program(1950-2020)
  14. linux 环境变量字符串的优先顺序
  15. CentOS7系统下YUM安装安装Mongodb 3.4
  16. tomcat安装以及常用配置
  17. 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析
  18. Linux 系统访问控制列表ACL
  19. mysql-connector-odbc-8.0.11-winx64.msi安装失败
  20. ui-router(三)controller与template

热门文章

  1. neo4j关闭和开启密码访问权限
  2. C#-WebForm-Repeater-重复器
  3. 并发包的线程池第二篇--Executors的构造
  4. c# 判断访问来源是否来自手机
  5. x509数字证书导入-然后删除自身
  6. 构建自己的PHP框架之自动加载类中详解spl_autoload_register()函数
  7. CSS样式表
  8. PHP基础之PDO
  9. Jmeter教程 简单的压力测试
  10. 机器学习——支持向量机(SVM)之核函数(kernel)