hi

好几天了吧,脚伤都有一周了的。玩乐的这么久才发觉,对于年轻人,或者更具体的,对我而言,受伤最难受的不是受伤瞬间的身痛,不是随之而来的心理负担,不是独自一人远在他乡的孤独无助之感;最伤的是斗志,是受伤后提不起来的消沉意志,是破罐子破摔的糜烂心气,或者,是问题本质的内心莫名的恐惧。

还好,虽然这么多天没动,恐惧的双刃剑还是刺痛尚存的责任心、内疚感,我还能继续写博客,活活活活~~

争取一天一门课,回家之前能有所成,一起加油!

新人新气象新课程~

1、PDO

一、PDO简介

1.1 PDO

PHP Data Object,数据库访问抽象层,统一各种数据库的访问接口。

提高数据库之间的移植性以及可维护性——手段是抽象度的提高,访问接口的统一。

不管用什么数据库,可以用同一个API进行编写。

--特性

编码一致性;

灵活性;

高性能;(c语言编写的,编译为PHP)

OOP。

--支持的库

PDO只是一个抽象的接口,对该接口的操作还需要支持各种库。

这里我们用的是PHP语言,所以用PDO MySQL。

1.2 配置与启用

在PHP的配置文件进行配置:

开启php_pdo.dll拓展-》开启相对应的数据库的拓展php_pdo_mysql.dll-》phpinfo看一下。

当然不同的环境(集成)是不一样的,自行百度吧。

1.3 连接数据库

--方式

参数形式;

URI形式;

配置文件形式。php.ini

--栗子

<?php
/*
* PDO实现连接数据库
*/

//参数形式
try {
$dsn='mysql:localhost;dbname=imooc_pdo';//数据源
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd); //pdo对象
var_dump($pdo);
}catch (PDOException $e){ //得到错误信息
echo $e->getMessage();
}

//URI形式
try {
$dsn='uri:C:\wamp\www\PDO_learning\dsn.txt';//区别就在于数据源获取
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){ //得到错误信息
echo $e->getMessage();
}

//配置文件形式,首先要在php.ini中写pdo.dsn.imooc="mysql:host=localhost;dbname=imooc_pdo"
try {
$dsn='imooc';//区别就在于数据源获取
$username='root';
$passwd='';
$pdo=new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){ //得到错误信息
echo $e->getMessage();
}

基本流程就是写好参数,然后new一个PDO对象即可。参数有数据源信息,用户名,密码三个。

数据源:data source name:驱动器名称:主机;数据库;(各种数据库这里的语法是不同的,自查)。

可以看到,三种形式的区别就在于取数据源的方式不同。

建议通过参数形式连接,当然,随你。

二、PDO对象的使用(增删改查)

2.1 exec()

执行一条SQL语句,并返回其受影响的行数,如果没有受影响的记录返回为0。

注意,exec对select没有用。

--栗子:建表&增

<?php
/*
* exec()的使用案例
*/

$pdo=new PDO('mysql:host=localhost;dbname=imooc','root','');
$sql=<<<EOF
CREATE TABLE IF NOT EXISTS user(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(30) NOT NULL
);
EOF;
$pdo->exec('use imooc_pdo');
$result0=$pdo->exec($sql);
var_dump($result0);

$insert='insert user(username,password,email) values("Kinga","'.md5('king').'","shit@shit.com")';
$result1=$pdo->exec($insert);
var_dump($result1);

但是,如果重复执行的话,会返回false。(?我也不知道为什么,谁能告诉我)

同样的删除也是可以的,但是注意查select是不能用exec执行的

每次从exec的返回结果进行结果的判定就行。

---------------------------------------------------------------------

哎呀,我真欠打,看了两集朝廷的综艺节目,时间哗哗的。。明天加油吧。

我懒蛋又回来了!-PDO的更多相关文章

  1. Oracle-1 - :超级适合初学者的入门级笔记,CRUD,事务,约束 ......

    Oracle 更改时间: 2017-10-25  -  21:33:49 2017-10-26  -  11:43:19 2017-10-27  -  19:06:57 2017-10-28  -  ...

  2. 常见linux命令释义(第四天)——bash部分

    学linux的时候,我跳过了一些很重要的东西.比如分区.还有vim的深入学习.分区没有学习是因为我装的是虚拟机,不知道是什么原因,格式化分区不能正常显示.至于vim,简单的增删改查我已经了解了.能够顺 ...

  3. linux下git的简单运用

    linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...

  4. hdf第一周完了,突然时间静止.,醒了就早点去公司上班,再努力一点

    周一要了个任务,做评价完成,分享完成的页面,做到周四发现可能做不出来,找dzy,逻辑比较混乱,想要放弃了,感觉自己非常没用.昨天跟豆聊了一下,否定自己是一点意义也没有的,觉得自己很差劲,无助的感觉跟初 ...

  5. Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器

    初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在  笔记 在pl/sql中可以继续使用的sql关键字有:update del ...

  6. PR视频剪辑

    PR视频剪辑 新手问题1: 将素材导入到Adobe Premiere Pro CC后为什么无法拖入到时间轴上 解决办法:没有建立有序列所致,CC不会一开始就让你新建序列,图中间处写的好清楚“无序列”. ...

  7. sqlalchemy tree 树形分类 无限极分类的管理。预排序树,左右值树。sqlalchemy-mptt

    简介: 无限极分类是一种比较常见的数据格式,生成组织结构,生成商品分类信息,权限管理当中的细节权限设置,都离不开无限极分类的管理. 常见的有链表式,即有一个Pid指向上级的ID,以此来设置结构.写的时 ...

  8. 深入研究sqlalchemy连接池

    简介: 相对于最新的MySQL5.6,MariaDB在性能.功能.管理.NoSQL扩展方面包含了更丰富的特性.比如微秒的支持.线程池.子查询优化.组提交.进度报告等. 本文就主要探索MariaDB当中 ...

  9. Cordova - Windows版本图形界面管理工具,告别命令行输入方式!

    Cordova本身提供的是命令行管理工具,并没有提供图形界面管理工具,虽然命令行管理工具可以完成所有Cordova管理,但是对于我这种懒蛋,可真不希望每次都输入命令,而且我更担心一旦输错一个字符,命令 ...

随机推荐

  1. CSS中的浮动和定位

    在了解CSS中的浮动和定位之前有必要先了解清楚标准流和脱离标准流的特性 标准流的默认特性 1.分行.块级元素,并且能够dispay转换. 2.块级元素(block):默认独占一行,不能并列显示,能够设 ...

  2. jQuery立体式数字滚动条增加

    1.html结构 <div class="numberRun1"></div> 2.js <script type="text/javasc ...

  3. 原生JS:Object对象详细参考

    Object对象详细参考 本文参考MDN做的详细整理,方便大家参考MDN JavaScript原生提供一个Object对象(注意起首的O是大写),所有其他对象都继承自这个对象. 构造函数: Objec ...

  4. 更改SAP的字段翻译

    TC:SE63在SAP用户选择屏幕中,用鼠标选定一个栏位后按F1键,可以看到SAP对其具体解释,通常这种解释文本分为两部分,一部分为标题,一部分为正文.比如:  有时,SAP的翻译让人感觉很别扭,对于 ...

  5. [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.

    给客户写了一个Outlook的add-in, 用现在时髦的话应该叫outlook的app. 这个add-in的作用就是把outlook中的email,直接上传到SharePoint中.想要代码的联系我 ...

  6. jsp声称的java文件位置

    想找到JSP生成的字节码文件还是Java文件,这得看你加载Web应用是自己配置的Tomcat还是加载到Eclipse默认路径下:先说Eclipse默认路径下的吧,其路径为:你的eclipse存放工程的 ...

  7. Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数

    1.主要布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  8. 初学HTML 常见的标签(一) 文本标签

    最近做iOS开发的过程中, 发现要涉及到JS和原生OC(Swift)的交互, 作为一个Developer, 本着克服一切问题的原则, 开始学习HTML, 在这里记录下自己的学习笔记, 方便以后的复习, ...

  9. 【Android】不使用WebView来执行Javascript脚本(Rhino)

    前言 动态执行脚本能有效的降低重要功能硬编码带来的问题,尤其是依赖于第三方的应用,可以通过动态脚本+在线参数(例如友盟在线参数)再不更新应用的情况下升级功能. 声明 欢迎转载,但请保留文章原始出处:) ...

  10. VS2015 Git 插件使用教程

    VS2015 中继承了 Git 插件,再也不用下载 Github for Windows了. 从 团队-管理连接  中打开 团队资源管理器 克隆Repository 在 本地 Git 存储库下面点击 ...