通过dbi使用perl连接mysql数据库的方法

通过dbi使用perl连接mysql数据库的方法,第1张

通过使用DBI,用Perl可以很容易的连接到mysql数据库:

代码如下:

复制代码

代码如下:

#!/bin/perl

use

DBI

#

Connect

to

target

DB

my

$dbh

=

DBI->connect("DBI:mysql:database=eyglehost=localhost","username","password",

{'RaiseError'

=>

1})

#

Insert

one

row

my

$rows

=

$dbh->do("INSERT

INTO

test

(id,

name)

VALUES

(1,

'eygle')")

#

query

my

$sqr

=

$dbh->prepare("SELECT

name

FROM

test")

$sqr->execute()

while(my

$ref

=

$sqr->fetchrow_hashref())

{

print

"$ref->{'name'}n"

}

$dbh->disconnect()

首先你要明白, DBI 是 Interface (界面), DBD 是 Driver ( 实际帮你存取 DB 的软件块 )

然後这个流程就是

1) DBI 会给你连上 driver, 你给的参数(id, password)也会透过 driver 给连上 DB.

2) 连上後, DBI 会给你返回一个 DB 的 *** 作句柄 ( handle )

3) 最後你会透过这个 handle 去 *** 作你的 DB

不过, 你的第一步是确定你的的 mySQL 已经运作, 你可以透过 console 存取 DB.

第二, 确定你的 perl 是否已安装了 mysql 的块

use DBI

@drivers= DBI->available_drivers

print "@drivers"

如果没有, 请先安装这个 driver (DBD::mysql)

第三, 尝试连接

use DBI

$dbh = DBI->connect('DBI:mysql:databasename', 'username', 'password' )

|| die "Could not connect to database: $DBI::errstr"

如果你的 db 不在本机, 你得写成

$dbh = DBI->connect('DBI:mysql:databasenamehost=192.168.xxx.xxx', # 加入 DB 的 host

'username', 'password', { RaiseError =>1 } )

如果你死在这里, 那麼, 请给出你得到的错误

留意, 你实在要 *** 作的是 $dbh , 不是 $dbi.

最後, 你说到网上说得乱七八糟的,试好久失败了. 请问, 你理解的是怎样的 ? 你试了甚麼 ? 怎样的失败 ? 报甚麼的错 ?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5912546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存