首頁 資料庫 mysql教程 DBI模块操作数据库示例

DBI模块操作数据库示例

Jun 07, 2016 pm 03:42 PM
perl 操作 資料庫 模組 範例

Perl中一个很重要的模块就是DBI模块(Perl Database Interface,数据库接口)。DBI模块为很多不同的数据库提供了一个统一的接口。Perl通过此接口可以很容易对数据库进行操作。结构图如下: 下面说下Perl如何对MySQL数据库进行操作。 1. 首先要确保Perl及MySQL

Perl中一个很重要的模块就是DBI模块(Perl Database Interface,数据库接口)。DBI模块为很多不同的数据库提供了一个统一的接口。Perl通过此接口可以很容易对数据库进行操作。结构图如下:

DBI模块操作数据库示例

下面说下Perl如何对MySQL数据库进行操作。


1. 首先要确保Perl及MySQL数据库已经安装。然后用cpan或者是ppm图形化界面来安装.

cpan> install DBI        #安装数据库模块
cpan> install DBD::mysql #安装数据库驱动  
登入後複製


2. 然后准备测试用数据库脚本: (admin.sql)

C:\Program Files\MySQL\MySQL Server 5.5\bin> mysql -u root -pabcd <c: drop database if exists admin create use table admin_info admin_id int auto_increment not null primary key admin_user varchar admin_pwd insert into values><br>
<span><strong>3. 准备连数据库脚本:(Conn_Mysql.pl)</strong></span>


<pre class="brush:php;toolbar:false">#!C:\Perl\bin\perl -w
#导入DBI模块
use DBI;
use utf8;
use strict;
use warnings;

#连接数据库
my $dbdrive = "mysql";
my $dbname = "admin";
my $hostname = "localhost";
my $port = "3306";   #MySQL数据库缺省端口
my $database = "DBI:$dbdrive:$dbname:$hostname:$port";

my $db_user = "root";
my $db_pwd = "abcd";
my $dbh = DBI->connect($database,$db_user,$db_pwd) or die DBI::errstr;

#执行插入操作
my $rows = $dbh->do("insert into admin_info(admin_id,admin_user,admin_pwd) 
                    VALUES (003, 'root', 'root')");
print "$rows row(s) affected!\n";

#执行查询操作
my $sth = $dbh->prepare("select * from admin_info");
$sth->execute();

#通过结果集进行迭代,并打印
while(my $ref = $sth->fetchrow_hashref()) {
print "admin_id: $ref->{'admin_id'}\n";
print "admin_user: $ref->{'admin_user'}\n";
print "admin_pwd: $ref->{'admin_pwd'}\n";
print "----------n";
}

#结束会话连接
$dbh->disconnect();
登入後複製

4. 结果如下:

DBI模块操作数据库示例

总结:

1. 使用connect()函数建立数据库连接。

2. 使用do()或prepare()以及execute()函数进行插入,查询,删除,更新操作

3. 使用fetchrow_hashref()函数,配合while,将遍历数据,方便打印操作

4. 使用disconnect()函数,断开数据库连接,结束文件句柄

总体来说,跟其他语言连数据库操作步骤类似。


其他标志说明:

Perl推荐使用下列标志作为约定

  $dsn    数据库源名
  $dbh    数据库处理对象
  $sth    处理对象声明
  $h      任意上述三种处理类型 ($dbh, $sth, or $drh)
  $rc     通用返回代码(boolean: true=ok, false=error)
  $rv     通用返回值(通常为一个整数)
  @ary    数据库中返回的数据列表
  $rows   要处理的行数(如果行数不存在的话,返回值为:-1)
  $fh     文件句柄
  undef   NULL值在Perl中表示未定义的值 
  \%attr  引用哈希属性值传给方法
登入後複製


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate 如何實作多型映射? Hibernate 如何實作多型映射? Apr 17, 2024 pm 12:09 PM

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Jun 25, 2024 pm 07:09 PM

目錄Astar Dapp 質押原理質押收益 拆解潛在空投項目:AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap 質押策略 & 操作“AstarDapp質押”今年初已升級至V3版本,對質押收益規則做了不少調整。目前首個質押週期已結束,第二質押週期的「投票」子週期剛開始。若要獲得「額外獎勵」收益,需掌握此關鍵階段(預計持續至6月26日,現餘不到5天)。我將細緻拆解Astar質押收益,

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

如何在 Golang 中將 JSON 資料保存到資料庫中? 如何在 Golang 中將 JSON 資料保存到資料庫中? Jun 06, 2024 am 11:24 AM

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

如何用 Golang 連接遠端資料庫? 如何用 Golang 連接遠端資料庫? Jun 01, 2024 pm 08:31 PM

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

See all articles