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",""); //设置异常模式
$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数组方式提交
PHP 链接多种数据库 的方法的更多相关文章
- QT连接多种数据库f方法及测试
QT提供了对多种数据库的访问支持,对SQL Server也可以通过ODBC来进行访问.要想顺利访问SQL Server. 首先要保证以下几点:1. QT编译时已经编译了QtSql2. 编译了ODBC插 ...
- 使用Navicat Premium 链接本地数据库的方法
在工作中,为了更方便的使用数据库,不免会用到Navicat Premium: 于是在重新安装电脑系统之后,原本想在其中链接一下本地数据库, 只是在链接途中要写的密码一项却不晓得应该写什么,想了很久密码 ...
- 使用Navicat Premium 链接本地数据库的方法(二)
最早一篇:http://www.cnblogs.com/zhengyeye/p/6363179.html 现在又重新装了电脑系统,需遇到了同样的问题.恰巧记得之前自己写的文档,没准可以帮助自己解决掉这 ...
- Python学习笔记9-Python 链接MySql数据库
Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...
- 关于在Java中链接SQLServer数据库中失败的原因分析
首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...
- 修改phpMYadmin 链接其他数据库地址的方法
找到phpmyadmin的文件 修改 config.inc.php 文件 框红的地方修改成你需要链接的数据库信息 重启环境,再次访问 phpmyadmin 地址即可
- SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...
- Java学习,从入门到放弃(一)SpringMVC+Maven+Mybits 多种数据库配置(mysql+sqlserver)AOP方式
多数据库配置需求有两种,一种是因为项目太大,访问量太高,不得不分布多个数据库减轻访问压力,比较多的应用就是读写分离:另一种就是原本不同的两个数据库业务现在要整合到一起,甚至连数据库都不一样,一个mys ...
- SQLSERVER远程链接Oracle数据库
原文地址: http://blog.sina.com.cn/s/blog_45eaa01a0102ywuk.html 使用SQL链接服务器远程访问Oracle数据库 在本机上通过SQL数据库的链接 ...
随机推荐
- ISO
- JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】
正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...
- Shiro-集成Spring
集成Spring 加入Spring 和Shiro的jar 包 配置Spring 及SpringMVC 参照:1.3.2\shiro-root-1.3.2-source-release\shiro-ro ...
- BZOJ 4205: 卡牌配对
4205: 卡牌配对 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 173 Solved: 76[Submit][Status][Discuss] ...
- php实现文件上传与下载(中)
出现不想让用户看见的信息,可以使用错误抑制符号@:当然能echo的东西都是可以赋值给一个变量的: 定义用户上传文件类型,将其放在数组变量allowExt中,用if(!in_array(第一个参数为获取 ...
- 【CVE-2016-10009】OpenSSH < 7.4 - agent Protocol Arbitrary Library Loading
粗看了一下,发现这个漏洞还是比较鸡肋的.如果前提条件满足,该漏洞可以在ssh server执行任意指令.不过前提是:1.攻击者可以往受害者磁盘上写文件.
- PHP常用函数总结
数学函数 abs() 求绝对值 传一个数字 会返回该值的绝对值 例如:abs(-1);//输出1 ceil() 进一法取整数 返回不小于 value 的下一个整数,value 如果有小数部分则进一位. ...
- Linux学习笔记<六>
进程与程序 1.子程序与父程序 PID是进程的ID,PPID是其父进程的ID 登录bash之后,就是获取了一个名为bash的PID,在这个环境上所执行的其他命令,就是其子程序 common@commo ...
- adb install INSTALL_FAILED_ALREADY_EXISTS
安装时候碰到的一个问题:已经签名的包,重新通过adb install 会提示安装错误.提示:Failure [INSTALL_FAILED_ALREADY_EXISTS] 为啥eclipse自己就可以 ...
- 【学习笔记】Servlet的配置
为了让Servlet能响应用户的请求,需要将Servlet配置在Web应用中. 从Servlet3.0开始,配置Servlet有两种方式: l 在Servlet类中使用@WebServlet Anno ...