使用dbi会在perl中产生一个简单错误

| 我的准备陈述书有误
$sqlst = $dbh->prepare(\'SELECT * FROM starter_trot WHERE UserId = 2345\' ) or die \"Couldn\'t prepare statement: \" . $dbh->errstr;
$sqlst->execute($userid) or die \"Couldn\'t execute statement: \" . $sqlst->errstr;
my @data;
print\"hai\";
while (@data = $sqlst->fetchrow_array())
{
print \"**\";
}
execute语句和prepare语句肯定不会失败。 [WHERE UserId = 2345]这是它失败的部分。当我在数据库中运行查询时,它会重新调整值。但是当我通过脚本运行查询时,它会失败(但没有编译或运行时问题),这是什么问题。在准备中,我们必须给出?(绑定变量而不是实际值?) 〜 〜     
已邀请:
使用严格,使用警告,在使用DBI时,使用RaiseError。当您的SQL语句中没有占位符时,您将使用一个绑定值执行。当然,您应该以自己的方式查看错误消息(因为默认情况下是PrintError),但是RaiseError比向各处撒'或死... \'要容易。     
DB可能会将列名返回为大写。尝试:
$sqlst = $dbh->prepare(\'SELECT * FROM starter_trot WHERE USERID = 2345\' ) or        die \"Couldn\'t prepare statement: \" . $dbh->errstr;
$sqlst->execute($userid) or die \"Couldn\'t execute statement: \" . $sqlst->errstr;
我敢打赌,它将奏效。     

要回复问题请先登录注册