浅谈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 相关文章推荐
php新建文件自动编号的思路与实现
Jun 27 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
PHP 获取文件权限函数介绍
Jul 11 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
PHP MVC框架中类的自动加载机制实例分析
Sep 18 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 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实现简单洗牌算法
2013/06/18 PHP
php数组删除元素示例
2014/03/21 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
关于PHP开发的9条建议
2015/07/27 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
js转义字符介绍
2013/11/05 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
js获取内联样式的方法
2015/01/27 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
简历的自我评价范文
2014/02/04 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
科学发展观演讲稿
2014/09/11 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
百万英镑观后感
2015/06/09 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js