簡體   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