欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

pdo到底有什么用?解决方案

程序员文章站 2022-05-10 18:37:43
...
pdo到底有什么用?
百科上说
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用。

这是什么意思?用pdo执行的查询代码即使更换了数据库也能正常运行?
SQL查询各个数据都不同的啊 ,比如mysql有limit,MSSQL没有limit,pdo会自动转换过来?
如果不行的话用pdo又有什么意义?
php 扩展
------解决方案--------------------
由于数据库的差异性,各个数据库的调用不是完全相同的,同样的程序如果使用不同的数据库存放数据时,需要对程序的数据处理部分进行改动,给移植带来不便。
用pdo,为数据库访问提供了一致的接口,只需在配置的连接参数中,配置不同的数据库驱动就可以了,而把对数据处理程序的改动降低到最小,甚至不需改动。为数据的处理及安全性都带来了很大的方便。
------解决方案--------------------
引用:
是不需要别的扩展吧。

以前每类数据库都要一个扩展,现在不用了。



其实也不能说与其他包完全没有依赖关系。

在php5.3后,php加入了一个叫mysqlnd的库,pdo_mysql会判断,如果定义了PDO_USE_MYSQLND这个宏,就使用mysqlnd提供的api来操作mysql,否则他需要知道你mysql的安装目录,去找mysql的.h文件,然后调用mysql本身的api。

还有php_mysql和php_mysqli,如果你在编译php时,指定了mysql的驱动为mysqlnd(--with-mysql=mysqlnd和--with-mysqli=mysqlnd),就使用mysqlnd的接口来操作mysql,否则你需要将--with-mysql和--with-mysqli指定为php-config,他会去使用mysql本身api。


php_pdo_mysql_int.h
--------------------------------
/* $Id$ */

#ifndef PHP_PDO_MYSQL_INT_H
#define PHP_PDO_MYSQL_INT_H

#if defined(PDO_USE_MYSQLND)
# include "ext/mysqlnd/mysqlnd.h"
# include "ext/mysqlnd/mysqlnd_libmysql_compat.h"
# define PDO_MYSQL_PARAM_BIND MYSQLND_PARAM_BIND
#else
# include
# define PDO_MYSQL_PARAM_BIND MYSQL_BIND
#endif
pdo到底有什么用?解决方案

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • pdo到底有什么用?解决方案
  • 专题推荐