我在Perl中有以下綁定查詢。用Perl插入MySQL
$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);
然而,如果在tbl_name
表中的第coloumn就是一個自動增加的主鍵?我該怎麼處理這個領域?
我在Perl中有以下綁定查詢。用Perl插入MySQL
$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);
然而,如果在tbl_name
表中的第coloumn就是一個自動增加的主鍵?我該怎麼處理這個領域?
你可以給第二列的僅僅是價值,這樣
my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2);
這比一個Perl的一個SQL的問題。
我該怎麼辦處理[自動增量]場?
請不要指定它。明確地命名你有價值的所有列,並忽略其他列。
這將導致它們採用它們的默認值,在自動增加字段的情況下,它將成爲下一個增量。
$sth = $dbh->prepare("insert into tbl_name (column_name) values (?)");
$sth->execute($val2);
$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);
正如其他人所說,你只是不通過是明確了哪些字段,你要插入,所以當他們說指定字段的值:
my $sth = $dbh->prepare('INSERT INTO tbl_name (col2) VALUES (?)');
$sth->execute($val2);
會很好。
我只想補充一點,你可以使用
$dbh->{'mysql_insertid'}
來獲取被指派給該行,這往往就派上用場的ID。