繁体   English   中英

使用Perl插入MySQL

[英]Inserting into MySQL with Perl

我在Perl中有以下绑定查询。

$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);

但是,如果该tbl_name表中的第一个列是自动增量主键怎么办? 我该怎么办?

这比Perl更像是一个SQL问题。

如何处理[自动递增]栏位?

完全不指定它。 明确命名所有您具有值的列,并忽略其他列。

这将使它们采用默认值,如果是自动增量字段,则为下一个增量。

$sth = $dbh->prepare("insert into tbl_name (column_name) values (?)");
$sth->execute($val2);

您可以仅给出第二列的值,如下所示

my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2);  

正如其他人所说的那样,您只是没有通过明确指出要插入的字段来指定字段的值,因此,正如他们所说:

my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2); 

会足够好。

我只想补充一点,您可以使用

$dbh->{'mysql_insertid'}

获取分配给该行的ID,这通常很方便。

$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute(undef, $val2);

要么

$sth = $dbh->prepare("insert into tbl_name (col2_name) values (?)");
$sth->execute($val2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM