Tag: DBI



2011年 4月 1

perlスクリプトをSpeedyCGIスクリプトとして動作させる場合、グローバル変数の値は保持され続ける。なので、一度接続したデータベースハンドルを使い回すことでデータベースへの接続コストを削減できる。

テスト用スクリプト .. continue reading ..


Filed under: MySQL,perl

Trackback Uri






2009年 4月 11

接続時

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 } = 1;


この辺の記事
http://www.geminium.com/chiba_blog/2009/02/


Filed under: MySQL

Trackback Uri






2009年 2月 6

PERLでMySQLにデータを挿入する実験。

実験スクリプト

INSERT を100万回繰り返す。

for(1..1000000){
$sql = <<"EOM";
INSERT INTO `table_name`
(`col1`,`col2`,`col3`,`col4`) VALUES ('10','11','12','13');
EOM

$sth = $dbh->do($sql)|| die $dbh->errstr;
}

結果:途中でサーバエラー

Server error!

The server encountered an internal error and was unable to complete your request.

Error message:

Premature end of script headers: xxxx.cgi

If you think this is a server error, please contact the webmaster.

Error 500

httpd/error_logの出力:

[Fri Feb 06 20:04:00 2009] [error] [client xx.xxx.xxx.xxx] Premature end of script headers: sql.cgi

挿入されたデータ:約83万行

httpd.confの設定が、TimeOut 60によるエラーか?


Filed under: MySQL,プログラミング

Trackback Uri






2008年 10月 21

$COUNT = $dbh->selectrow_array("SELECT COUNT(*) FROM  `テーブル名` WHERE `カラム` = '条件'");

Filed under: MySQL,perl,プログラミング

Trackback Uri






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};

Filed under: MySQL,perl

Trackback Uri