查找在perl DBI中执行的查询类型

查找在perl DBI中执行的查询类型,perl,dbi,Perl,Dbi,在我的perl程序中,我有一个函数,它接受一个查询作为输入,并执行它,如果查询是select语句,则打印获取的任何行 但问题在于update或insert语句中的fetchrow\u数组会出现错误,那么我有没有办法知道执行了什么类型的查询,以便跳过fetch部分?不知道执行的是哪种SQL对我来说听起来是个坏主意,但这不是你所要求的,所以 检查后,您将发现: 通过检查 $sth->{NUM\u OF_FIELDS}在调用execute后大于零 不知道您正在执行哪种SQL对我来说是个坏主意,但这不是

在我的perl程序中,我有一个函数,它接受一个查询作为输入,并执行它,如果查询是select语句,则打印获取的任何行


但问题在于update或insert语句中的fetchrow\u数组会出现错误,那么我有没有办法知道执行了什么类型的查询,以便跳过fetch部分?

不知道执行的是哪种SQL对我来说听起来是个坏主意,但这不是你所要求的,所以

检查后,您将发现:

通过检查 $sth->{NUM\u OF_FIELDS}在调用execute后大于零


不知道您正在执行哪种SQL对我来说是个坏主意,但这不是您所要求的,所以

检查后,您将发现:

通过检查 $sth->{NUM\u OF_FIELDS}在调用execute后大于零


使用正则表达式创建一个小助手函数,以检查查询中特定单词的SQL字符串

my $sql = "UPDATE some_table SET some_value = 'abc' WHERE some_value = 'xyz'";

sub get_query_type
{
    my $sql_string = shift;
    my $query_type;

    if( $sql_string =~ m/^UPDATE/i )
    {
        $query_type = "An UPDATE query";
        # do UPDATE stuff
    }
    elsif( $sql_string =~ m/^INSERT/i )
    {
        $query_type = "An INSERT query";
        # do INSERT stuff
    }
    # more blocks here as needed.

    return $query_type;
}

my $type = get_query_type( $sql );

print $type;

使用正则表达式创建一个小助手函数,以检查查询中特定单词的SQL字符串

my $sql = "UPDATE some_table SET some_value = 'abc' WHERE some_value = 'xyz'";

sub get_query_type
{
    my $sql_string = shift;
    my $query_type;

    if( $sql_string =~ m/^UPDATE/i )
    {
        $query_type = "An UPDATE query";
        # do UPDATE stuff
    }
    elsif( $sql_string =~ m/^INSERT/i )
    {
        $query_type = "An INSERT query";
        # do INSERT stuff
    }
    # more blocks here as needed.

    return $query_type;
}

my $type = get_query_type( $sql );

print $type;

您的程序充满了错误祝您好运;)您的程序充满了错误祝您好运;)我会试试的。有那么糟糕的问题吗??这是我为自己写的一些方便代码。我会试试的。有那么糟糕的问题吗??这是我为自己写的方便代码。