浅谈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编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
PHP设计模式之适配器模式代码实例
May 11 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
Dec 05 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
Mar 14 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/09/06 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
python 不以科学计数法输出的方法
2018/07/16 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python3中确保枚举值代码分析
2020/12/02 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
某公司.Net方向面试题
2014/04/24 面试题
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
社区活动邀请函范文
2014/01/29 职场文书
旅游网创业计划书
2014/01/31 职场文书
售后客服工作职责
2014/06/16 职场文书
校本教研活动总结
2014/07/01 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
教育见习报告范文
2014/11/03 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
如何做好工作总结!
2019/04/10 职场文书
vue router 动态路由清除方式
2022/05/25 Vue.js