Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不';我不能得到这个DBI/MySQL查询的输出吗?_Mysql_Perl_Dbi_Activeperl - Fatal编程技术网

为什么不';我不能得到这个DBI/MySQL查询的输出吗?

为什么不';我不能得到这个DBI/MySQL查询的输出吗?,mysql,perl,dbi,activeperl,Mysql,Perl,Dbi,Activeperl,我已经用Perl编写了以下代码。我有适用于Windows7的ActivePerl 5.14 #!C:\perl64\bin\perl.exe -wT use strict; use warnings; use DBI; print "Content-type: text/html \n\n"; # MYSQL CONFIG VARIABLES my $driver = "mysql"; my $database = "test555"; my $tablename3 = "test

我已经用Perl编写了以下代码。我有适用于Windows7的ActivePerl 5.14

#!C:\perl64\bin\perl.exe -wT
use strict;
use warnings;
use DBI;
print "Content-type: text/html \n\n";

# MYSQL CONFIG VARIABLES
my $driver     = "mysql";
my $database   = "test555";
my $tablename3 = "test77";

my $user = "root";
my $pw   = "root";

# PERL MYSQL CONNECT()
my $dbh = DBI->connect("DBI:$driver:$database", $user, $pw,);

my $sth = $dbh->prepare("
        SELECT *
          FROM t6
         WHERE paragraph='PWE1234'
    ");

$sth->execute();
#$dbh->disconnect;
#exit 0;

当程序到达
$dbh->disconnect
时,系统抛出错误;于是就把它评掉了。当我将其注释掉时,系统没有抛出任何错误,但我也没有得到输出


这个查询有一个结果,我用MySQL单独检查了一次。

没有输出,因为您没有创建任何输出的代码


调用
execute
后,您需要调用其中一个,并对返回的数据结构进行处理。

您没有打印任何内容,为什么需要任何输出?“系统正在抛出错误”。。。什么错误?@gpojd,它抛出了一个错误注册表。语句句柄未关闭。因为我用的是严格的,所以它吐了。所以,在关闭数据库句柄之前,我给了语句句柄一个finish语句。现在解决了@Mannii88,听起来好像在关闭语句句柄之前没有获得所有记录。这可能是故意的,但我不知道。我通常
while(my$row=$sth->fetchrow){…}
来获取所有的行,然后我不需要
$sth->finish
@gpojd,你能给我一个最新模块的例子吗。。。我正在尝试与来自网络的资源并行…我正在尝试使用哈希..我想打印数组…带有标题…嗨@quentin,你能提供一个示例或链接,在那里我可以找到一个实例…用于获取数组/哈希并用perl打印..我可以打印通过,而(@row=$sth->fetchrow\u array()){print“@row\n”;但是,如果我想使用for语句,如何获得行计数并给出循环…我怀疑您会发现很多(如果有的话)DBD,它会告诉您所选行的行数,直到您实际获取了所有行,在这种情况下,这并不重要。您可以使用fetchall\u arrayref/fetchall\u hashref获取结果集中的所有行,但显然您需要内存来保存这些行。您可以使用MaxRows和这些方法来限制每次调用返回的行。ThDBI文档中有一些很好的示例。
$sth->rows()
将返回所选行数。