2008年 10月 3

$sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )";
$sth = $dbh->prepare( "$sql" );
$sth->execute();
$id = $sth->{mysql_insertid};

これで$idに「自分が追加した最新のauto_increment番号」が代入される

ただし下記のようにdoでは使えない。

$sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )";
$sth = $dbh->do( "$sql" );
$id = $sth->{mysql_insertid};

More from my site

  • DBI & MySQLでカウントするDBI & MySQLでカウントする $COUNT = $dbh->selectrow_array("SELECT COUNT(*) FROM `テーブル名` WHERE `カラム` = '条件'");
  • perl SpeedyCGIでデータベースの接続を永続化するperl SpeedyCGIでデータベースの接続を永続化する perlスクリプトをSpeedyCGIスクリプトとして動作させる場合、グローバル変数の値は保持され続ける。なので、一度接続したデータベースハンドルを使い回すことでデータベースへの接続コストを削減できる。 テスト用スクリプト #!/usr/bin/speedy use strict; use warnings; use DBI; #DB用設定 my […]
  • DBIでMysql を使う時の文字コード指定DBIでMysql を使う時の文字コード指定 接続時 my $dbh = DBI->connect('DBI:mysql:database=sandbox;host=localhost;mysql_read_default_file=/etc/mysql/my.cnf',qw/id password/,); または接続後に $dbh->{ mysql_enable_utf8 } = […]
  • 連続で大量のデータをINSERTする実験連続で大量のデータをINSERTする実験 PERLでMySQLにデータを挿入する実験。 実験スクリプト INSERT を100万回繰り返す。 for(1..1000000){ $sql = <<"EOM"; INSERT INTO `table_name` (`col1`,`col2`,`col3`,`col4`) VALUES […]
  • [Perl] DBIx::SkinnyでGROUP BY句を使うには[Perl] DBIx::SkinnyでGROUP BY句を使うには ※何故か記載が全体的にORDER BY句になっていたので修正... DBIx::SkinnyでGROUP BY句を使う DBIx::SkinnyでGROUP […]
  • MySQL で年月日等の日付別に集計するMySQL で年月日等の日付別に集計する いまさら月次集計や年毎の集計など 集計をする際は、主にGROUP BYを多く用いる。 YEAR(), MONTH(), DAY(), DAYNAME(), EXTRACT()が便利。 WHERE で条件しぼるんじゃないらしい(ヲイ) 2010-05 2010-06 等で年月別の集計なら、 SELECT EXTRACT(YEAR_MONTH […]

Filed under: MySQL,perl

Trackback Uri



コメントする