PHP 链接多种数据库 的方法
2024-08-21 06:32:53
数据库中 单词之间的空格(一个语句前面和后面做字符串拼接的时候最好留空格 ) 可以随便加 其他地方 禁止随便加空格!!(加了 就报错)!
=====================总结=========================
数据库链接执行①:
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数组方式提交
最新文章
- okhttp-utils的封装之okhttp的使用
- const修饰虚函数
- NOIP2005 篝火晚会 解题报告
- linux开机启动增加tomcat启动项
- *[topcoder]AstronomicalRecords
- PHP5.4的变化关注---What has changed in PHP 5.4.x(转)
- C# 根据年月获得此月第一天和最后一天,并计算工作日
- 适合初学者的一个分布式环境搭建过程(spring boot + zookeeper + dubbo + mybatis + mysql)
- Tornado框架简介(二)
- redis使用总结(一)(redis客户端使用)
- Assets Library开发总结
- 【译】理解JavaScript中的柯里化
- History of program(1950-2020)
- linux 环境变量字符串的优先顺序
- CentOS7系统下YUM安装安装Mongodb 3.4
- tomcat安装以及常用配置
- 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析
- Linux 系统访问控制列表ACL
- mysql-connector-odbc-8.0.11-winx64.msi安装失败
- ui-router(三)controller与template