使用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不管怎么样就是不能输入中文?! 字体:大 中 小 |