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

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

数据库链接执行①:

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 链接多种数据库 的方法的更多相关文章

  1. QT连接多种数据库f方法及测试

    QT提供了对多种数据库的访问支持,对SQL Server也可以通过ODBC来进行访问.要想顺利访问SQL Server. 首先要保证以下几点:1. QT编译时已经编译了QtSql2. 编译了ODBC插 ...

  2. 使用Navicat Premium 链接本地数据库的方法

    在工作中,为了更方便的使用数据库,不免会用到Navicat Premium: 于是在重新安装电脑系统之后,原本想在其中链接一下本地数据库, 只是在链接途中要写的密码一项却不晓得应该写什么,想了很久密码 ...

  3. 使用Navicat Premium 链接本地数据库的方法(二)

    最早一篇:http://www.cnblogs.com/zhengyeye/p/6363179.html 现在又重新装了电脑系统,需遇到了同样的问题.恰巧记得之前自己写的文档,没准可以帮助自己解决掉这 ...

  4. Python学习笔记9-Python 链接MySql数据库

    Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...

  5. 关于在Java中链接SQLServer数据库中失败的原因分析

    首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴.(加入了各种Java学习群,基本没有热心帮人解决问题的.可以理解-_-!!!)大神级的人物就不必看拙文了,没有什 ...

  6. 修改phpMYadmin 链接其他数据库地址的方法

    找到phpmyadmin的文件 修改 config.inc.php 文件 框红的地方修改成你需要链接的数据库信息 重启环境,再次访问 phpmyadmin 地址即可

  7. SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型

    SQL 横转竖 .竖专横 (转载)   普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...

  8. Java学习,从入门到放弃(一)SpringMVC+Maven+Mybits 多种数据库配置(mysql+sqlserver)AOP方式

    多数据库配置需求有两种,一种是因为项目太大,访问量太高,不得不分布多个数据库减轻访问压力,比较多的应用就是读写分离:另一种就是原本不同的两个数据库业务现在要整合到一起,甚至连数据库都不一样,一个mys ...

  9. SQLSERVER远程链接Oracle数据库

    原文地址: http://blog.sina.com.cn/s/blog_45eaa01a0102ywuk.html 使用SQL链接服务器远程访问Oracle数据库   在本机上通过SQL数据库的链接 ...

随机推荐

  1. 数据可视化 echarts3

    初识 echarts ECharts,一个纯 Javascript 的数据可视化图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefo ...

  2. hibernate- Hibernate中多对多的annotation的写法(中间表可以有多个字段)

    http://blog.csdn.net/liuxianbing119/article/details/7283769

  3. JavaScript系列文章:自动类型转换-续

    在上一篇文章中,我们详细讲解了JavaScript中的自动类型转换,由于篇幅限制,没能覆盖到所有的转换规则,这次准备详细讲解一下. 上次我们提到了对象类型参与运算时转换规则: 1). 在逻辑环境中执行 ...

  4. js比较版本号

    比较版本v2.2.3和2.1.15大小 //假定字符串的每节数都在5位以下 function toNum(a){ var a=a.toString(); //也可以这样写 var c=a.split( ...

  5. Mac OSX:Powerline风格的zsh配置

    需要的工具 iTerm,一个替代OSX自带终端的软件,基于iTerm才能实现上面的效果: oh-my-zsh,zsh是OSX上最强大的shell,没有之一,但是配置过程较为复杂,这个脚本能够帮你一键配 ...

  6. Theano printing

    Theano printing To visualize the internal relation graph of theano variables. Installing conda insta ...

  7. vector - vector product

    the inner product Givens two vectors \(x,y\in \mathbb{R}^n\), the quantity \(x^\top y\), sometimes c ...

  8. python包使用指南-创建虚拟环境

    创建虚拟环境的两种方法: 1.virtualenv 2.venv http://packaging.python.org/en/latest/installing/#creating-virtual- ...

  9. Hibernate--------八大类HQL查询集合

    Hibernate的   八大类HQL查询集合 Hibernate的八大类HQL查询集合: 一:属性查询(SimplePropertyQuery) 1,单一属性查询 *返回结果集属性列表,元素类型和实 ...

  10. Manage Metadata Service Error: There are no addresses available for this application

    打开正常创建的Metadata Service后发现了如下的错误: 检查了Application Pool和Managed Metadata Web  Service ,发现两者一切正常,之后查看Sh ...