刚从python转来做php,目前在学习laravel框架,新项目准备基于laravel框架的前后端分离模式。
这次练习,需要两个文件,分别是index.html,index.php。
index.html做为前端静态页面,通过ajax做数据请求,这么做是为了复习一下ajax的写法。

index.html

<!doctype html>
<head><!--不写这句,页面无法解析中文字符--><meta charset="UTF-8"><script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><title>CHUENG</title>
</head>
<body>
<a id="code">点击向后端发送请求!</a>
</body><script type="text/javascript">$('#code').click(function () {$.ajax({url: '/php-study/index.php',type: 'get',data: {<!--通过修改action的value值,来访问后端index.php不同的方法-->action: 'check',dbname: 'phpstudy',<!--发送查询语句-->query: "SELECT * FROM user;",<!--发送插入语句-->insert: "INSERT INTO user (id, username) VALUES(0, 'monkey');"},success: function (resp) {$('body').html(resp);}})})
</script>
</html>

index.php

<?phpclass PdoDB
{private $servername = 'localhost';private $username = 'root';private $password = 'root';private $dbname = 'edu';private static $_instance = NULL;// 设为私有方法后,不能通过new来创建实例对象了,只能由内部提供静态方法来调用private function __construct(){try {$this->conn = new PDO("mysql:host=$this->servername;dbname=$this->dbname;",$this->username,$this->password);// 设置 PDO 错误模式为异常$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);} catch (PDOException $e) {$e->getMessage();}}// 由这个函数来new一个类的实例,进而实现单例需求.public static function getInstance(){if (is_null(self::$_instance)) {self::$_instance = new PdoDB();}return self::$_instance;}public function __clone(){die('Clone is not allowed.' . E_USER_ERROR);}// 程序结束后自动调用该函数,这里不设置成私有方法,是为了让实例自行调用.public function __destruct(){$this->conn = NULL;}// 创建数据库public function create($data){try {$sql = "CREATE DATABASE $data ;";// 使用 exec() ,没有结果返回$this->conn->exec($sql);echo $data . '数据库创建成功!';} catch (PDOException $e) {echo $sql . '<br>' . $e->getMessage();}}// 查询数据库public function check($data){try {$result = $this->conn->query($data)->fetchAll(PDO::FETCH_ASSOC);echo '<pre>';//var_dump($result);$result_json = json_encode($result);echo $result_json;}catch (PDOException $e) {echo $data . '<br>' . $e->getMessage();}}public function insert($data){try {$result = $this->conn->exec($data);echo $result;} catch (PDOException $e) {echo $data . '<br>' . $e->getMessage();}}
}$db = PdoDB::getInstance();
switch ($_GET['action']) {case 'connect':echo '数据库连接成功!';break;case 'create':$db->create($_GET['dbname']);break;case 'check':$db->check($_GET['query']);break;case 'insert':$db->insert($_GET['insert']);break;default:break;
}

php利用PDO对数据库的操作练习相关推荐

  1. 利用COM+对数据库操作进行单元测试

    当单元测试需要对数据库执行CRUD(Create,Retrieve,Update,Delete)操作时,测试过后会在我们的数据库中留下大量重复的垃圾数据,这些垃圾很碍眼不是吗?而且我们的下一个测试有可 ...

  2. php数据库操作类的调用优化,PHP PDO优化数据库操作类 多数据库驱动类

    就是做一下整理 PHP PDO类操作.简化操作流程 更多内容 http://git.oschina.net/youkuiyuan/yky_test/blob/master/class/pdo.clas ...

  3. c++ ado操作mysql_利用ADO在C++下操作access数据库

    一.ADO简介 ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口, 是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB, ...

  4. C++利用MySQL API连接和操作数据库

    1.C++连接和操作MySQL的方式 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象 ...

  5. VC中利用ADO共同实现数据库的操作

    VC中利用ADO共同实现数据库的操作 ADO是应用层的编程接口,它通过OLE DB提供的COM接口访问数据,它适合于各种客户机/服务器应用系统和基于Web的应用,尤其在一些脚本语言中访问数据库操作是A ...

  6. MySQL练习记录——利用Python的pymysql模块操作MySQL数据库

    文章目录 前言 # 第一部分:数据库练习 准备数据 创建数据表 插入数据 SQL演练 1. SQL语句的强化 2. 创建"商品分类"表 3. 同步表数据 4. 创建"商品 ...

  7. FMDatabaseQueue 数据库多线程操作、事务处理

    SQLite数据库多线程操作: 在上面一节中已经讲过FMDB的用法了,接下来讲讲sqlite在都线程中的用法.如果应用中使用了多线程操作数据库,那么就需要使用FMDatabaseQueue来保证线程安 ...

  8. 小程序与云服务器api接口,小程序云函数调用http api进行对云数据库的操作

    小程序http api 的云数据库操作接口需在服务器端调用,利用云开发后台的话,可以云函数中调用相应的接口可以实现对云数据库的操作.以下是新增集合的一个代码段,以供参考. 需要注意的是,安装got模块 ...

  9. 数据库之操作MySQL

    数据库之操作MySQL 一.数据库 1.什么是数据库 数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里.. 数据表之间相互关联,反映客观事物间的本质联系.. 数 ...

最新文章

  1. 【直播】陈信达:零基础计算机视觉之机器学习基础
  2. python 二维数组赋值_python日常注意小知识集锦
  3. 细品慢酌QuickTest关键视图(5)脚本调试
  4. 如何在ChemDraw中打出符号π
  5. 操作系统【抢占式处理机调度例题、LLF最低松弛度优先算法】
  6. 整整4个月了,尽全力组织了源码共读活动~
  7. web程序设计(2)....开发流程?
  8. 操作基本数据类型的流/数据流
  9. SQL2008安装 VS2008安装(VS2010存在的情况下)
  10. RFID无线射频识别技术
  11. 扫描全能王文件上传不了服务器,如何将扫描全能王的文档轻松保存到坚果云?...
  12. u盘win7纯净版_教你安装纯净版windows系统
  13. 股票集合竞价规则详解,什么是集合竞价?集合竞价技巧分析
  14. C语言经典面试笔试题
  15. [ZZ]变速齿轮作者的文章--绝杀反外挂方案
  16. 5G NR SUL CA DC对比
  17. virtual audio cable 虚拟声卡
  18. Bootstrap全部可用类名
  19. 内网横传之哈希传递(Pass The Hash)
  20. Unity 物理系统

热门文章

  1. 怎么看cf的服务器在哪个文件夹,cf录像在哪个文件夹
  2. 删除设备和驱动器中的图标
  3. uni-app小程序答题功能开发(左右滑动,判断,填空,问答,答题卡,纠错,做题倒计时等)
  4. SD3038B高效率恒流限流白光LED驱动IC
  5. Docker的安装以及解决启动失败问题
  6. FFmpeg初探——基于FFmpeg的图片合成视频
  7. H5,200行代码实现粒子漩涡特效
  8. 2019.5.输入正整数n,再输入n个数,计算并输出这n个数之和。要求:本题必须使用递归完成,整个程序不允许使用循环。例如3 2 3 4,输出7
  9. 星空主题设计理念_请星星设计理念
  10. Go: panic / recover 简介与实践