Perl編程中的mysql數據庫連接使用方法
許多網友問到這個問題,我來詳細介紹一下吧。
首先,要安裝perl的DBI模塊,目前最新的版本是1.14,可以去www.cpan.org下載,文件名是DBI-1.14.tar.gz,下載后將該文件拷貝到一個臨時目錄中,運行以下命令安裝:
tar xzvf DBI-1.14.tar.gz
cd DBI-1.14
perl Makefile.PL
make
make test
make install
然后,要安裝Msql-Mysql-modules,我得到的最新版本是1.2215,可以去www.cpan.org下載,文件名是Msql-Mysql-modules-1.2215.tar.gz,下載后將該文件拷貝到一個臨時目錄中,運行以下命令安裝:
tar xzvf Msql-Mysql-modules-1.2215.tar.gz
cd Msql-Mysql-modules-1.2215
perl Makefile.PL
make
make test
make install
執行“perl Makefile.PL”命令時會提示你輸入選項,如果是值用來支持Mysql的話,輸入1就可以了。
需要的軟件安裝完成,現在就可以在perl程序中連接數據庫了。
use DBI;
#這條語句是用來說明使用DBI模塊的
my $dsn="DBI:mysql:$db_name:$host";
#這條語句用來定義一個數據源,其中$db_name是你要連接的數據庫的庫名,$host是你要連接的數據庫所在的主機名,可以省略不寫,用這種形式:my $dsn="DBI:mysql:$db_name";
my $db_user="db_username";
my $db_pass="db_password";
#這里定義了連接數據庫時使用的用戶名和密碼
my ($dbh,$sth);#定義兩個標量,用來做庫句柄和語句句柄
$dbh=DBI->connect($dsn,$db_user,$db_pass,{RaiseError=>1});
#使用面向對象的方法建立一個數據庫句柄,其中“RaiseError=>1”的作用是連接數據庫出錯時顯示一條信息,然后退出,如果不用這種方法的話,DBI->connect方法將返回一個undef值。這時,我們就可以進行數據庫的操作了。
#下面,我將介紹兩種數據庫操作的方法
1.有返回值的處理方法
$sth=$dbh->prepare("select password from userinformation where username='$username'");
#輸入一條SQL語句
$sth->execute();
#執行SQL語句
my $password=$sth->fetchrow_array();
# -- or --
while(my @password=$sth->fetchrow_array())
{
...
}
#得到查詢的返回結果,如果是多個值的話,可以使用while循環來做。
$sth->finish();
#關閉語句句柄
2.無返回值的處理方法
my $stat=$dbh->do("insert into userinformation values('$username','$password','$state')");
#這種無返回值的處理方法就簡單多了,也不用使用$sth->finish();語句來關閉數據庫句柄
$dbh->disconnect();
#關閉數據庫句柄
這就是連接數據庫的基本操作,但是,使用過程中要注意一些問題:
1.使用do的方法時,后面不要跟$sth->finish();語句
2.連接數據庫完畢后,要記得關閉數據庫句柄,即執行$dbh->disconnect();語句
首先,要安裝perl的DBI模塊,目前最新的版本是1.14,可以去www.cpan.org下載,文件名是DBI-1.14.tar.gz,下載后將該文件拷貝到一個臨時目錄中,運行以下命令安裝:
tar xzvf DBI-1.14.tar.gz
cd DBI-1.14
perl Makefile.PL
make
make test
make install
然后,要安裝Msql-Mysql-modules,我得到的最新版本是1.2215,可以去www.cpan.org下載,文件名是Msql-Mysql-modules-1.2215.tar.gz,下載后將該文件拷貝到一個臨時目錄中,運行以下命令安裝:
tar xzvf Msql-Mysql-modules-1.2215.tar.gz
cd Msql-Mysql-modules-1.2215
perl Makefile.PL
make
make test
make install
執行“perl Makefile.PL”命令時會提示你輸入選項,如果是值用來支持Mysql的話,輸入1就可以了。
需要的軟件安裝完成,現在就可以在perl程序中連接數據庫了。
use DBI;
#這條語句是用來說明使用DBI模塊的
my $dsn="DBI:mysql:$db_name:$host";
#這條語句用來定義一個數據源,其中$db_name是你要連接的數據庫的庫名,$host是你要連接的數據庫所在的主機名,可以省略不寫,用這種形式:my $dsn="DBI:mysql:$db_name";
my $db_user="db_username";
my $db_pass="db_password";
#這里定義了連接數據庫時使用的用戶名和密碼
my ($dbh,$sth);#定義兩個標量,用來做庫句柄和語句句柄
$dbh=DBI->connect($dsn,$db_user,$db_pass,{RaiseError=>1});
#使用面向對象的方法建立一個數據庫句柄,其中“RaiseError=>1”的作用是連接數據庫出錯時顯示一條信息,然后退出,如果不用這種方法的話,DBI->connect方法將返回一個undef值。這時,我們就可以進行數據庫的操作了。
#下面,我將介紹兩種數據庫操作的方法
1.有返回值的處理方法
$sth=$dbh->prepare("select password from userinformation where username='$username'");
#輸入一條SQL語句
$sth->execute();
#執行SQL語句
my $password=$sth->fetchrow_array();
# -- or --
while(my @password=$sth->fetchrow_array())
{
...
}
#得到查詢的返回結果,如果是多個值的話,可以使用while循環來做。
$sth->finish();
#關閉語句句柄
2.無返回值的處理方法
my $stat=$dbh->do("insert into userinformation values('$username','$password','$state')");
#這種無返回值的處理方法就簡單多了,也不用使用$sth->finish();語句來關閉數據庫句柄
$dbh->disconnect();
#關閉數據庫句柄
這就是連接數據庫的基本操作,但是,使用過程中要注意一些問題:
1.使用do的方法時,后面不要跟$sth->finish();語句
2.連接數據庫完畢后,要記得關閉數據庫句柄,即執行$dbh->disconnect();語句