浅谈PHP的数据库接口和技术


Posted in PHP onDecember 09, 2016

1、php支持哪些数据库(拥有哪些数据库接口)

Adabas D ,InterBase ,PostgreSQL ,dBase ,FrontBase ,SQLite ,Empress ,mSQL ,Solid ,FilePro(只读),Direct MS-SQL ,Sybase ,Hyperwave ,MySQL ,Velocis ,IBM DB2 ,ODBC ,Unix dbm ,informix ,Oracle(OCI7 和 OCI8),Ingres ,Ovrimos

以上数据库都支持,简言之,支持绝大多数主流数据库

2、php原生操作mysql数据库方法

<?php
//数据库操作
//1.导入数据库
require("../../public/dbconfig.php");
//2.连接数据库
$link=mysql_connect(HOST,USER,PASS) or die("数据库连接失败");
//3.选择数据库,设置字符集
mysql_select_db(DBNAME,$link);
mysql_set_charset("utf8");
//4.编写sql语句,发送sql语句到数据库
$sql="select * from users";
$res=mysql_query($sql,$link);
//5.解析结果集
while($user=mysql_fetch_assoc($res)){
echo "<tr align='center'>";
echo "<td>{$userstate[$user['state']]}</td>";
echo "<td>{$user['username']}</td>";
echo "<td>".date("Y-m-d",$user['addtime'])."</td>";
echo "<td>
<a href='edit.php?id={$user['id']}'>修改</a> 
<a href='action.php?a=del&id={$user['id']}'>删除</a>
</td>";
echo "</tr>";
}
mysql_free_result($res);
mysql_close($link);
?>

3、php的PDO概念

PDO即PHP数据对象,将数据作为对象来操作,提高了操作数据的安全性和便捷性,从PHP5.1版本开始支持,例如预处理语句(prepared statements)、绑定参数(bound parameters)、可滚动游标(scrollable cursors)、定位更新(positioned updates)以及 LOB。

DAO(Data Access Object) 数据访问对象是一个面向对象(PDO)的数据库接口,在很多PHP框架中通过对原生的PDO封装形成安全便捷的数据处理接口方法,下例为YII中的DAO方法:

http://www.yii-china.com/doc/guide/db_dao.html

<?php>
//在advanced\common\config\main-local.php的conponents中配置好db;
//连接数据库
$connection = Yii::$app->db;
//编写预处理查询语句
$command = $connection->createCommand('SELECT * FROM post');
//执行操作
$posts = $command->queryAll();
$post = $command->queryOne();
$titles = $command->queryColumn();
<?php>

4、活动记录Active Record

ActiveRecord是一种设计模式,他的直接目的不是为了操作数据库的,而是一种数据模型,相对于DAO是数据的更高级抽象。它提供了一个面向对象的统一接口,

用以访问数据库中的数据。

使用AR更大的简化代码,减少了出错的可能,下例是YII中的AR操作方法

//数据表customer对象实例化
$customer = new Customer();
$customer->name = 'Qiang';
$customer->save(); // 一行新数据插入 customer 表

5、什么情况下使用DAO或AR了

复杂业务逻辑使用DOA, 反之用AR

以上这篇浅谈PHP的数据库接口和技术就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
Discuz! Passport 通行证整合
Mar 27 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
magento后台无法登录解决办法的两种方法
Dec 09 #PHP
Zend Framework常用校验器详解
Dec 09 #PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 #PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 #PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 #PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 #PHP
zend框架实现支持sql server的操作方法
Dec 08 #PHP
You might like
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
laravel多条件查询方法(and,or嵌套查询)
2019/10/09 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
AngularJS基础知识
2014/12/21 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
django和vue实现数据交互的方法
2019/08/21 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
终止合同协议书
2014/04/17 职场文书
买卖协议书范本
2014/04/21 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
总经理岗位职责范本
2015/04/01 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis
keepalived + nginx 实现高可用方案
2022/12/24 Servers