DBI和DBD有什么区别?

Ana*_*hah 8 perl dbi dbd

有人可以了解一下DBI和DBD究竟是什么?什么时候应该使用一个和使用一个优于另一个的好处.

el.*_*ado 21

DBI是数据库访问库,而DBD是DBI用于访问特定数据库的"驱动程序"(例如,有一个用于MySQL的DBD,另一个用于PostgreSQL等).您应该直接使用DBI而不是DBD.


fri*_*edo 16

来自DBI文档:

               ????  Scope of DBI  ????

                      ?????  ???????????????????  ???????????????????
  ???????????         ?   ????    XYZ Driver   ????    XYZ Engine   ?
  ?  Perl   ?         ?   ?  ???????????????????  ???????????????????
  ? script  ?  ? A ?  ? D ?  ???????????????????  ???????????????????
  ?  using  ???? P ???? B ????  Oracle Driver  ????  Oracle Engine  ?
  ?   DBI   ?  ? I ?  ? I ?  ???????????????????  ???????????????????
  ?   API   ?         ?   ??? ???
  ? methods ?         ?   ??? ??? Other drivers
  ???????????         ?   ??? ???
                      ?????
Run Code Online (Sandbox Code Playgroud)

标记的框XYZ DriverOracle Driver是DBD模块.

所以你的代码与DBI对话.DBI与您的数据库的相应DBD模块进行对话.DBD模块与您的数据库通信.这导致与不同数据库的单一,一致的接口.


Pau*_*lin 9

DBI是界面.DBD是该接口的实现.