嗨,我正在使用 SQLite DB,每当我尝试将参数的值绑定(bind)到语句中时,都会出现错误。
这是一段代码:
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);
这是错误:
ERROR: DBD::SQLite::st execute failed: datatype mismatch at line 68.
谁能帮帮我,让我知道我应该用什么数据类型代替 SQL_VARCHAR?
最佳答案
看起来您正在使用 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();
即:没有参数到
execute()
并且值进入 bind_param()
称呼。
关于perl - 如何使用 Perl 绑定(bind) SQL 语句中的参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838111/