如何使用Perl绑定SQL语句中的参数值?

SUS*_*USH 1 sqlite perl

我正在使用SQLite DB,每当我尝试将参数的值绑定到语句中时,我都会收到错误.

这是一段代码:

my $sth = $dbh->prepare("SELECT UserId,UserName,CardNo,GroupId,Role,VerifyType FROM
    UsersList limit ?,? "); 
$sth->bind_param(1, undef,SQL_VARCHAR);
$sth->bind_param(2, undef,SQL_VARCHAR);
$sth->execute($page,$results_per_page);
Run Code Online (Sandbox Code Playgroud)

这是错误:

ERROR: DBD::SQLite::st execute failed: datatype mismatch at line 68.
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮帮我,让我知道我应该用什么数据类型代替SQL_VARCHAR?

Øyv*_*aar 5

看起来你bind_param()错了.看看这个例子:

use DBI qw(:sql_types);  # Don't forget this

my $sth = $dbh->prepare(q{
    SELECT bar FROM foo GROUP BY bar HAVING count(*) > ?;
});
$sth->bind_param(1, 5, SQL_INTEGER);
$sth->execute();
Run Code Online (Sandbox Code Playgroud)

ie:没有参数,execute()值在bind_param()调用中.