浅谈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 相关文章推荐
mysql建立外键
Nov 25 PHP
中篇:安装及配置PHP
Dec 13 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
CodeIgniter框架URL路由总结
Sep 03 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
PHP错误机制知识汇总
Mar 24 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
实例讲解PHP表单
Jun 10 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
Python交换变量
2008/09/06 Python
python中异常报错处理方法汇总
2016/11/20 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
详解python调用cmd命令三种方法
2019/07/08 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
公司担保书格式范文
2014/05/12 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
市场部岗位职责
2015/02/12 职场文书
个人德育工作总结
2015/03/05 职场文书
新郎接新娘保证书
2015/05/08 职场文书
《给予树》教学反思
2016/03/03 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers