在浏览器CGI上运行时,Perl打印语法不起作用

时间:2016-10-26 17:33:59

标签: perl browser command-line cgi

调用print后,

my $dbh = DBI->connect($dsn, "username", "password");语法无法正常工作。但是,当我将my $dbh = DBI->connect($dsn, "username", "password"); print顶部的打印语法正常工作时。这种情况发生在我使用CGI通过浏览器运行此代码时,当我在命令行中运行此代码时都能正常工作。

以下是代码:

#!"C:\Strawberry\perl\bin\perl.exe"
use CGI qw(:standard);
use DBI;
use JSON;

print header("application/json");

my $dsn = "DBI:mysql:database=webservices;host=localhost;port=3306";

print "test"; #work properly
my $dbh = DBI->connect($dsn, "root", "bukanjombloboy");
print "test"; #not working    

my $result = $dbh->prepare("SELECT * FROM news");
$result->execute();

my $json_text = to_json($result->fetchall_arrayref());
print $json_text;

$dbh->disconnect();

对不起,我的英语不好,不管怎样,谢谢。

2 个答案:

答案 0 :(得分:0)

这可能是EOL的问题,在行中:

my $dbh = DBI->connect ($dsn, "root", "bukanjombloboy");

检查所有行中的所有EOL是否相等。

答案 1 :(得分:0)

我找到了解决方案。 问题是APACHE webserver没有访问库的权限,所以我必须在管理员模式下运行XAMPP。