データベースにデータを追加するための命令として、SQLにはinsertという命令があります。
データベースegiのテーブルmeiboに、データを追加する例を次に示します。
【使用するSQL文】 insert into meibo values("タロ", "44", "小野田","111-111-1111") |
【プログラム例】 #!/usr/bin/perl use DBI; $dbh = DBI->connect("dbi:Pg:dbname=egi",'','') or die "Cannot connect: " , $DBI::errstr; $sth = $dbh->prepare("insert into meibo values(?, ?, ?, ?)" ) or die "Cannot prepare: " , $dbh->errstr(); $sth->execute( "タロ", "44", "小野田", "111-111-1111", ) or die "Cannot execute: " , $sth->errstr(); |
【プログラム実行結果】 [egi@myouga]$ perl cgirei_ins.pl [egi@myouga]$ psql Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL type \? for help on slash commands type \q to quit type \g or terminate with semicolon to execute query You are currently connected to the database: egi egi=> select * from meibo; namae |toshi|addre | tel ----------+-----+------------+------------ ハル | 2|宇部市 |0836-88-8888 ミミ | 2|宇部市 |0836-33-3333 ポチ | 10|山口市 |0839-66-6666 クー | 4|宇部市 |0836-99-9999 サチ | 3|下関市 |0832-77-7777 タロ | 44|小野田 |111-111-1111 (6 rows) egi=> |
【備考】
上記のプログラムでは、insert 命令内に追加データは埋め込まず、? で書かれている。 プレースホルダー機能を用いているためである。 ?の箇所は実行時(execute)時に、追加データと置き換えられデータベースに追加される。 |