首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读2258次
perl2编程mysql中文

使用connect方法建立一个到数据源的连接。$data_source应该以DBI:driver_name:开始,例如:

$dbh = DBI->connect("DBI:mysql:$database", $user, $password); www.shengfang.org

$dbh = DBI->connect("DBI:mysql:$database:$hostname",$user, $password);

$dbh = DBI->connect("DBI:mysql:$database:$hostname:$port",$user, $password);


Can't locate DBI.pm in at INC (@INC contains: O:/php/perl/lib O:/php/perl/site/lib dot ) at O:\php\OptiPerl\webroot\cgi-bin\newscript1.cgi line 3.
BEGIN failed--compilation aborted at O:\php\OptiPerl\webroot\cgi-bin\newscript1.cgi line 3.

#!O:/php/perl/bin/Perl.exe www.shengfang.org
print "Content-type: text/plain; charset=gb2312\n\n";
print "rrow[1]\n";
use DBI; www.shengfang.org
my $dbh = DBI->connect('dbi:mysql:astbill:localhost','root','123');

$dbh->do("set names gbk");

my $sql = "insert into admin(namee,pwd) values('对数函数','闪电划过的')";
my $sth = $dbh->prepare($sql);
$sth->execute(); www.shengfang.org

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


$sth->execute(); www.shengfang.org
my at row;
while(@row=$sth->fetchrow_array())
{ www.shengfang.org
 print "$row[2]\n"; www.shengfang.org
}

rrow[1]
21232f297a57a5a743894a0e4a801fc3
?????
rrow[1] www.shengfang.org
21232f297a57a5a743894a0e4a801fc3
闪电划过的 www.shengfang.org

[client]
port=3306
default-character-set=gbk www.shengfang.org

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=gbk www.shengfang.org

引用
   cnchun  
    perl mysql中文乱码
   摘自 中国Perl协会 用户推广组   cnchun  2005-06-29 16:57
http://perlchina.sun126.com/cgi-bin/ccb/index.cgi
搞了一天总算搞好了。
perl5.8+mysql4.1,用perl DBI mysql往数据库插入数据,总是乱码,而用phpmyadmin能插入中文;而用perl插入的中文在phpmyadmin里面也是乱码。数据库的创建,我用了。
create database cnews default character set gbk;
CREATE TABLE `news` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `title` varchar(50) default NULL,
 `context` text,
 `date` date default NULL,
 `site` varchar(20) default NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk

如果在my.cnf里面设置了
[client]
default-character-set = gbk
[mysqld]
default-character-set = gbk

mysql -uroot -p;
mysql>use cnews;
mysql> status
--------------
Server characterset:  gbk
Db   characterset:  gbk
Client characterset:  gbk
Conn. characterset:  gbk
则perl能够正常插入中文无须其它设置。

如果不在my.cnf里设置default-character-set,例如:
mysql -uroot -p;
msyql>use cnews
mysql> status
Server characterset:  latin1
Db   characterset:  gbk
Client characterset:  latin1
Conn. characterset:  latin1

在调用perl 的时候,需要下面设置:
$db->do("SET character_set_client = 'gbk'");
$db->do("SET character_set_connection = 'gbk'");
如果需要显示结果,加上
$db->do("SET character_set_results= 'gbk' ");

其实可以把database 设置为gbk,然后用character_set_*来设置相关编码,mysql其实还是很灵活的。perl运行跟linux的locale没有关系,对于数据库操作。
刚学perl,希望对跟我一样的新手有所帮助。
 
 hoowa  
    在Perl里简单的执行这个也.
   摘自 中国Perl协会 用户推广组   hoowa  2005-06-29 19:00
http://perlchina.sun126.com/cgi-bin/ccb/index.cgi
在Perl里简单的执行这个也可以实现与服务器端一样是gbk编码
set names gbk 


这个中文真是麻烦,找了半天资料,可是KOMODO不管怎么样就是不能输入中文?!


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/perl2chinese.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1126581254

2005年9月13日11:14星期二  [Dev开发] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 16||用户: 2562 [列表]
今日:2332||到访:2671831
Rss:838490||评论:1584

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8