9
votes

Quelle est la différence entre DBI et DBD?

Quelqu'un peut-il perdre une lumière sur ce que DBI et DBD sont exactement la lumière? Quand devrait-il être utilisé et les avantages d'utiliser un sur l'autre.


0 commentaires

5 Réponses :


9
votes

DBI est l'interface. DBD sont les implémentations de cette interface.


1 commentaires

Sorte de. Cela ressemble plus à DBI est l'interface externe et DBD est l'interface interne. DBD ne sait pas sur DBI (théoriquement) et l'utilisateur de DBI ne connaît pas le DBD.



21
votes

DBI est une bibliothèque d'accès à la base de données, tandis que les DBD sont des "pilotes" utilisés par DBI pour accéder à une base de données particulière (par exemple. Il y a un DBD pour MySQL, un autre pour PostgreSQL, etc.). Vous devez utiliser DBI plutôt que DBDS directement.


0 commentaires

18
votes

du DCI DOCS :

               │←−−  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
  └─────────┘         │   ├── ∙∙∙
                      └───┘


0 commentaires

1
votes

Utilisez-les ensemble. Par exemple, avec MySQL : xxx pré>

si vous parlez à un Oracle base de données, vous pourrez peut-être vous éloigner de ne changer que le $ data_source code> argument sur DBI :: Connect CODE> : P>

$dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $password);


0 commentaires

4
votes

DBI signifie Interface de base de données . DBD signifie pilote de base de données .

En tant que programmeur, vous devez toujours utiliser l'interface (DBI). L'interface, à son tour, utilise le pilote. La raison d'utiliser DBI au lieu d'utiliser DBD directement est qu'il fournit une couche d'abstraction cohérente pour travailler avec des bases de données. Il y a de nombreux modules DBD mais il vous suffit d'apprendre une interface. De plus, cela rend relativement facile à modifier la base de données que votre application utilise simplement en modifiant le pilote. L'interface est la même. (La syntaxe de la requête pourrait être un peu différente.)


0 commentaires