+ -
当前位置:首页 → 问答吧 → perl连接数据库中文出现乱码

perl连接数据库中文出现乱码

时间:2011-06-27

来源:互联网

#!/bin/perl
use strict;

use DBI;
use utf8;





my $sth = $dbh->query("SET NAMES 'utf8'");





my $dbh = DBI->connect("DBI:mysql:database=shi;host=localhost", "root", "3833051", {'RaiseError' => 1});


my $rows = $dbh->do("INSERT INTO users (id, username, country) VALUES (15, '住', 't')");

my $sth = $dbh->prepare("select * from users");

$sth->execute();

# iterate through resultset

# print values

while(my $ref = $sth->fetchrow_hashref()) {

print $ref->{username};

}









# clean up


$dbh->disconnect();

我也是按照网上加了这一句my $sth = $dbh->query("SET NAMES 'utf8'");
数据库的my.ini我也改成了utf-8,可是运行会出现cannot call method “query”on an undefined value,请问下这是怎么回事啊

作者: 010shiwei010   发布时间: 2011-06-27

本帖最后由 hitsubunnu 于 2011-06-27 15:50 编辑

$dbh->query("SET NAMES 'utf8'"); 这是php

perl的是 $dbh->do("SET NAMES 'utf8'");

另外 你加的位置也是错的

作者: hitsubunnu   发布时间: 2011-06-27

呵呵,我是刚开始弄这个,我试了下,把query改成do,然后换了几个位置,还是不行,能不能再指点下,谢谢

作者: 010shiwei010   发布时间: 2011-06-27

我在connect下一行加了  $dbh->do("SET NAMES 'utf-8'");结果出现了DBD::mysql::db do failed:Incorrect string value

作者: 010shiwei010   发布时间: 2011-06-27