DBI - The Perl 5 Database Interface
Perl HTML XS C++ C
Latest commit 02b90b6 May 28, 2016 @Tux Tux A few more .ext protections
Failed to load latest commit information.
devel Spelling fixes. Jun 24, 2013
err_new Delete issues that have been addressed or are otherwise no longer rel… Jun 28, 2004
err_shelved Updating source to current work-in-progress and adding some non-sourc… Feb 1, 2004
t Change t/16destroy.t to avoid race hazard Apr 24, 2016
.gdbinit Sorted .gitignore, added test_output_* and MYMETA.*. Added .gdbinit Sep 28, 2013
.gitignore Sorted .gitignore, added test_output_* and MYMETA.*. Added .gdbinit Sep 28, 2013
.travis.yml Add 5.22 and 5.22-extras to travis-ci config Apr 24, 2016
Changes Fix extentension detection for DBD::File related drivers May 28, 2016
DBI.pm Bump version to 1.636 and update Changes Apr 24, 2016
DBI.xs Fix compilation for threaded perl <= 5.12 Apr 24, 2016
DBIXS.h Replaced ErrChangeCount with alternative approach that's binary compa… Oct 13, 2013
Driver.xst Rework support for 64bit row counts to rely on macros only. Bump to 1… Aug 2, 2015
Driver_xst.h Fixed unused variable / self-assignment compiler warnings Jul 13, 2012
INSTALL Spelling fixes. Jun 24, 2013
LICENSE Update LICENSE with "as perl itself" verbiage. Jul 18, 2015
Makefile.PL Add IRC to resources [rt.cpan.org #99004] Sep 20, 2014
appveyor.yml add appveyor: CI for Windows, like Travis Oct 26, 2015
dbd_xsh.h Add dbd_db_do4_iv, dbd_st_rows_iv, dbd_st_execute_iv Jul 22, 2015
dbilogstrip.PL Avoid noise from warnings generated when syntax checking expanded .PL… Sep 2, 2009
dbipport.h Update dbipport.h from ppport.h 3.20 to 3.32 Apr 22, 2016
dbiprof.PL Hardcoded version strings Jun 3, 2013
dbiproxy.PL Fixed spelling errors in pod. RT#107838 Apr 21, 2016
dbivport.h Fixed DBD::File finish() method to return 1 thanks to Jan Dubois. Aug 26, 2004
dbixs_rev.pl Add doc note about sth attributes relating to current result set. Jul 16, 2007
goferperf.pl Partial work on retry mechanism for gofer. Apr 25, 2007


DBI - The Perl Database Interface.

Build Status

See COPYRIGHT section in DBI.pm for usage and distribution rights.

See GETTING HELP section in DBI.pm for how to get help.


The DBI requires one or more 'driver' modules to talk to databases,
but they are not needed to build or install the DBI.

Check that a DBD::* module exists for the database you wish to use.

Install the DBI using a installer like cpanm, cpanplus, cpan,
or whatever is recommened by the perl distribution you're using.
Make sure the DBI tests run successfully before installing.

Use the 'perldoc DBI' command to read the DBI documentation.

Install the DBD::* driver module you wish to use in the same way.
It is often important to read the driver README file carefully.
Make sure the driver tests run successfully before installing.

The DBI.pm file contains the DBI specification and other documentation. PLEASE READ IT. It'll save you asking questions on the mailing list which you will be told are already answered in the documentation.

For more information and to keep informed about progress you can join the a mailing list via mailto:dbi-users-help@perl.org You can post to the mailing list without subscribing. (Your first post may be delayed a day or so while it's being moderated.)

To help you make the best use of the dbi-users mailing list, and any other lists or forums you may use, I strongly recommend that you read "How To Ask Questions The Smart Way" by Eric Raymond:


Much useful information and online archives of the mailing lists can be found at http://dbi.perl.org/

See also http://metacpan.org/


First, read the notes in the INSTALL file.

If you can't fix it your self please post details to dbi-users@perl.org. Please include:

  1. A complete log of a complete build, e.g.:

    perl Makefile.PL (do a make realclean first) make make test make test TEST_VERBOSE=1 (if any of the t/* tests fail)

  2. The output of perl -V

  3. If you get a core dump, try to include a stack trace from it.

    Try installing the Devel::CoreStack module to get a stack trace. If the stack trace mentions XS_DynaLoader_dl_load_file then rerun make test after setting the environment variable PERL_DL_DEBUG to 2.

  4. If your installation succeeds, but your script does not behave as you expect, the problem is possibly in your script.

    Before sending to dbi-users, try writing a small, easy to use test case to reproduce your problem. Also, use the DBI->trace method to trace your database calls.

Please don't post problems to usenet, google groups or perl5-porters. This software is supported via the dbi-users mailing list. For more information and to keep informed about progress you can join the mailing list via mailto:dbi-users-help@perl.org (please note that I do not run or manage the mailing list).

It is important to check that you are using the latest version before posting. If you're not then we're very likely to simply say "upgrade to the latest". You would do yourself a favour by upgrading beforehand.

Please remember that we're all busy. Try to help yourself first, then try to help us help you by following these guidelines carefully.

Regards, Tim Bunce and the perl5-dbi team.