【发布时间】:2012-10-15 21:49:49
【问题描述】:
我已经看到这个unknown column in 'field list' 是一个经常发生的问题,并且通常有一个简单的解决方案。在我的情况下,我唯一能想到的是我的一些变量需要引号,但考虑到我从数组中提取数据,我最初的反应是那是错误的。
我正在尝试在 Perl 中创建表,因此得到了结果。
我可以使用以下方法创建一个表($table 之前声明过):
$dbh->do("create table if not exists $table ( id int(5) not null auto_increment,
time int(2) default null,
result_1 varchar(30),
result_2 varchar(30),
result_3 varchar(30),
rating int(2) default null,
primary key (id))");
但是在插入我的“结果”时:
my @results = ('abc','def','ghi');
my $r_1 = $results[0];
my $r_2 = $results[1];
my $r_3 = $results[2]; # (these results print out fine)
my $time = time;
my $insert = $dbh->prepare("insert into $table values(id,$time,$r_1,$r_2,$r_3,'')");
$insert->execute;
我得到错误:
DBD::mysql::st execute failed: Unknown column 'abc' in 'field list' at ...
从数组插入结果时是否需要添加额外的引号?或者还有其他我没见过的问题(可能很简单!)?
【问题讨论】:
-
感谢所有答案!帮助解释了一切,两个人都像魅力一样工作。我喜欢不必声明所有结果 ;) 编辑:使用 @results 可以同时使用这两种方法,但 dan1111 先说它