第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

如何用Perl訪問(wèn)SQLite數(shù)據(jù)庫(kù)

標(biāo)簽:
SQL Server

SQLite是一个零配置、无服务端、基于文件的事务型数据库系统。由于它的轻量级,自包含和紧凑的设计,所以当你想要集成数据库到你的程序中时,SQLite是一个非常不错的选择。在这篇文章中,我会展示如何用Perl脚本来创建和访问SQLite数据库。我演示的Perl代码片段是完整的,所以你可以很简单地修改并集成到你的项目中。




访问SQLite的准备

我会使用SQLite DBI Perl驱动来连接到SQLite3。因此你需要在Linux中安装它(和SQLite3一起)。


Debian、 Ubuntu 或者 Linux Mint


$ sudo apt-get install sqlite3 libdbd-sqlite3-perl

CentOS、 Fedora 或者 RHEL


$ sudo yum install sqlite perl-DBD-SQLite

安装后,你可以检查SQLite驱动可以通过下面的脚本访问到。


#!/usr/bin/perl

my @drv = DBI->available_drivers();

print join("\n", @drv), "\n";

如果你运行脚本,你应该会看见下面的输出。


DBM

ExampleP

File

Gofer

Proxy

SQLite

Sponge

Perl SQLite 访问示例

下面就是Perl访问SQLite的示例。这个Perl脚本会演示下面这些SQLite数据库的常规管理。


创建和连接SQLite数据库

在SQLite数据库中创建新表

在表中插入行

在表中搜索和迭代行

在表中更新行

在表中删除行

use DBI;

use strict;

# 定义数据库名称和驱动

my $driver   = "SQLite";

my $db_name = "xmodulo.db";

my $dbd = "DBI:$driver:dbname=$db_name";

# sqlite 没有用户名密码的概念

my $username = "";

my $password = "";

# 创建并连接到数据库

# 以下创建的文件名为 xmodulo.db

my $dbh = DBI->connect($dbd, $username, $password, { RaiseError => 1 })

                      or die $DBI::errstr;

print STDERR "Database opened successfully\n";

# 创建表

my $stmt = qq(CREATE TABLE IF NOT EXISTS NETWORK

             (ID INTEGER PRIMARY KEY     AUTOINCREMENT,

              HOSTNAME       TEXT    NOT NULL,

              IPADDRESS      INT     NOT NULL,

              OS             CHAR(50),

              CPULOAD        REAL););

my $ret = $dbh->do($stmt);

if($ret < 0) {

   print STDERR $DBI::errstr;

} else {

   print STDERR "Table created successfully\n";

}

# 插入三行到表中

$stmt = qq(INSERT INTO NETWORK (HOSTNAME,IPADDRESS,OS,CPULOAD)

           VALUES ('xmodulo', 16843009, 'Ubuntu 14.10', 0.0));

$ret = $dbh->do($stmt) or die $DBI::errstr;

$stmt = qq(INSERT INTO NETWORK (HOSTNAME,IPADDRESS,OS,CPULOAD)

           VALUES ('bert', 16843010, 'CentOS 7', 0.0));

$ret = $dbh->do($stmt) or die $DBI::errstr;

$stmt = qq(INSERT INTO NETWORK (HOSTNAME,IPADDRESS,OS,CPULOAD)

           VALUES ('puppy', 16843011, 'Ubuntu 14.10', 0.0));

$ret = $dbh->do($stmt) or die $DBI::errstr;

# 在表中检索行

$stmt = qq(SELECT id, hostname, os, cpuload from NETWORK;);

my $obj = $dbh->prepare($stmt);

$ret = $obj->execute() or die $DBI::errstr;

if($ret < 0) {

   print STDERR $DBI::errstr;

}

while(my @row = $obj->fetchrow_array()) {

      print "ID: ". $row[0] . "\n";

      print "HOSTNAME: ". $row[1] ."\n";

      print "OS: ". $row[2] ."\n";

      print "CPULOAD: ". $row[3] ."\n\n";

}

# 更新表中的某行

$stmt = qq(UPDATE NETWORK set CPULOAD = 50 where OS='Ubuntu 14.10';);

$ret = $dbh->do($stmt) or die $DBI::errstr;

if( $ret < 0 ) {

   print STDERR $DBI::errstr;

} else {

   print STDERR "A total of $ret rows updated\n";

}

# 从表中删除某行

$stmt = qq(DELETE from NETWORK where ID=2;);

$ret = $dbh->do($stmt) or die $DBI::errstr;

if($ret < 0) {

   print STDERR $DBI::errstr;

} else {

   print STDERR "A total of $ret rows deleted\n";

}

# 断开数据库连接

$dbh->disconnect();

print STDERR "Exit the database\n";

上面的Perl脚本运行成功后会创建一个叫“xmodulo.db”的数据库文件,并会有下面的输出。


Database opened successfully

Table created successfully

ID: 1

HOSTNAME: xmodulo

OS: Ubuntu 14.10

CPULOAD: 0

ID: 2

HOSTNAME: bert

OS: CentOS 7

CPULOAD: 0

ID: 3

HOSTNAME: puppy

OS: Ubuntu 14.10

CPULOAD: 0

A total of 2 rows updated

A total of 1 rows deleted

Exit the database

错误定位

如果你尝试没有安装SQLite DBI驱动的情况下使用Perl访问SQLite的话,你会遇到下面的错误。你必须按开始说的安装DBI驱动。


Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./script.pl line 3.

BEGIN failed--compilation aborted at ./script.pl line 3.

编译自:http://xmodulo.com/access-sqlite-database-perl.html作者: Dan Nanni
原创:LCTT https://linux.cn/article-5764-1.html译者: geekpi

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消