代码如下:
复制代码
代码如下:
#!/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())
{
"$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.
最後, 你说到网上说得乱七八糟的,试好久失败了. 请问, 你理解的是怎样的 ? 你试了甚麼 ? 怎样的失败 ? 报甚麼的错 ?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)