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

作者:jingxian 时间:2024-05-02 17:13:49 

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,数据库,接口
0
投稿

猜你喜欢

  • JavaScript ParseFloat()方法

    2024-04-29 13:35:48
  • PHP Document 代码注释规范

    2023-11-14 11:50:54
  • vue-form表单验证是否为空值的实例详解

    2024-04-30 10:40:03
  • MySQL函数Locate的使用详解

    2024-01-17 22:59:41
  • 利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法

    2023-09-11 15:11:50
  • 一小时快速入门Python教程

    2023-03-06 04:07:03
  • python实现人机五子棋

    2022-06-15 08:07:49
  • 检测SqlServer数据库是否能连接的小技巧

    2024-01-21 04:01:28
  • 来自腾讯的一个不固定高度得消息的滚动特效

    2024-04-17 10:19:34
  • python得到qq句柄,并显示在前台的方法

    2021-10-08 12:44:30
  • python文件选择对话框的操作方法

    2023-08-02 16:27:21
  • Django项目使用CircleCI的方法示例

    2022-10-17 11:43:24
  • python中将字典转换成其json字符串

    2023-10-16 23:46:41
  • python flask框架详解

    2023-07-20 02:54:52
  • Python Socket实现简单TCP Server/client功能示例

    2021-05-21 19:19:46
  • python write无法写入文件的解决方法

    2022-04-02 06:36:02
  • JavaScript错误处理

    2023-09-23 08:26:37
  • 深入解析Python中的list列表及其切片和迭代操作

    2023-03-24 04:20:40
  • Python反射机制案例超详细讲解

    2022-08-06 16:24:53
  • MySQL 备份还原数据库批处理

    2024-01-16 21:03:52
  • asp之家 网络编程 m.aspxhome.com