プロが教える店舗&オフィスのセキュリティ対策術

PerlでSQLiteのデータテーブルを作成し、作成したテーブルへデータを追加するようにしたいのですが、

下記のように作成し、実行すると、
テーブルの作成のみ、もしくは、既存のテーブルへのデータの追加のみは可能なのですが、
両方処理させると、テーブルの作成のみされて、作成されたテーブルの中身はカラのままです。

#データベースに接続
$dbh = DBI->connect("dbi:SQLite:dbname=c:\\database\\tyumon.db");
open (DATA,"c.dat");
$data = <DATA>;
close(DATA);
$data = $data+1;

$table = "user";
$table .= $data;
#テーブル作成実行
$hst = $dbh->do("CREATE TABLE '$table'(name text,area text,tel text,mail text,jikan text, hoka text)");

#レコードの追加(INSERT文の実行)
$st = $dbh->do("insert into '$table' values('$data','$name','$area','$tel','$mail','$jikan','$hoka')");

「c.dat」には、カウントされた数字が入っています。
テーブル名は「user」+カウント数字で作成しています。

データベースと、CGIの勉強を兼ねて作成しているもので、
根本的な間違いなどあるかもしれません。

どなたか、ご指摘いただければ幸いです。

A 回答 (1件)

テーブルで定義している列と、INSERTしようとしているデータの列の数が食い違っているからかと。



処理ごとの戻り値や例外を確認するコードを組み込むと、いろいろ理解が深まりやすいと思います。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。

ご指摘の箇所を修正したところ、正常に動作しました。

ほんとに恥ずかしいばかりの、初歩的ミスですね^^;

助かりました。
ありがとうございました。

お礼日時:2013/06/26 09:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!