perl指令碼中對資料庫的操作

來源:互聯網
上載者:User

標籤:使用   os   資料   re   c   ar   

perl中DBI模組為mysql資料庫相關操作的介面,首先需要在環境中安裝DBI模組。perl處理資料庫操作的大致步驟如下:
#聲明使用DBI模組
use DBI;
#設定資料庫連接參數,指定串連資料庫名,資料庫所在伺服器ip地址,串連使用者名稱,密碼
# db_name為要串連的資料庫名,ip為資料庫所在伺服器ip地址
my $database=‘DBI:mysql:database=db_name;host=ip‘;
my $user=‘user_name‘;
my $pw=‘password‘;
#串連資料庫
my $dbh=DBI->connect($database,$user,$pw,{‘RaiseError‘=>1})||die "can‘t connect to the database:$DBI::errstr\n";

# 如需要支援中文,則執行如下語句。以保證中文資料以用utf8編碼方式儲存到資料庫中。同時注意使用資料庫用戶端時也要用uft8編碼查看資料,否則查看到的資料可能亂碼。
$dbh->do("set names utf8");

以下列舉幾個資料操作:
統計記錄總數:
# key_word為表的主鍵,table_name
my $sql0="select count(key_word) from table_name";
my $sth0=$dbh->prepare("$sql0");
$sth0->execute();
#讀取一行資料,並將資料放入數組中。
my $ref0= $sth0->fetchrow_array();
print "$ref0\n";
$sth0->finish();

迴圈處理查詢並更新一張表的記錄
# 從表中查詢記錄
my $sql="select * from table_name";
my $sth=$dbh->prepare("$sql");
$sth->execute();
# $sth->fetchrow_hashref()作為一個雜湊表的引用取出下一行。這個方法取一行資料並且返回包含欄位名/值對的一個雜湊表的一個引用。
while(my $ref= $sth->fetchrow_hashref())
{
# 列印記錄欄位,id為主鍵
    print "$ref->{‘id‘} $ref->{‘segment1‘} $ref->{‘segment2‘}\n";
#更新記錄
 my $update_sql="update table_name set segment1=value1 segment2=value2 where id=$ref->{‘id‘}";
 my $update_sth=$dbh->prepare("$update_sql");
 $update_sth->execute();
 $update_sth->finish();
}
# 迴圈結束,進行結束操作。
$sth->finish();

#所有資料庫操作結束,斷開資料庫連接。
$dbh->disconnect();

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.