perlとmysqlを使っています。
htmlのformタグからえたテキストをCGIに送って
データベースに保存しているのですが、送信ボタンを押すと2回データベースに
保存されてしまいます。
同じデータがふたつ保存されるのではなく、
一つ目はすべてNULLのデータが保存され
二つ目にmformの内容が保存されます。
CGIのほうのSQL文はひとつしか書いていません。for文も使っていません。
<-----以下form部分のソースーーーーー>
print "<form method=\"POST\" action=\"./CGI/save_DB.cgi\" name=\"saveform_2\"target=\"subwindow\" onSubmit=\"openwin();\">";
print "<div>タイトル:<input type=\"text\" name=\"TITLE\" autocomplete=off value='";
print "$TITLE\'></div>";
print "<input type=\"submit\" value=\"保存\">";
print "</form>";
<-----以下save_DB.cgi SQL実行部分のソースーーーーー>
my $TITLE = $cgi->param('TITLE');
my $dbh = DBI->connect("DBI:mysql:host=${db_host};database=${db_name}", $db_user, $db_pass);
my $sth = $dbh->prepare("INSERT INTO テーブル名 ( `title`) VALUES ($TITLE);
my $rv = $sth->execute();
データベースへの接続などの問題はありません。
ブラウザはクロームですが、IEで試しても同じ現象がでました。
考えられる原因、おもいあたる原因がありましたら、教えてください。
また、原因がわからなくても、回避できそうなやり方があれば教えてください。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>my $sth = $dbh->prepare("INSERT INTO テーブル名 ( `title`) VALUES ($TITLE);
そもそも文法的に間違っていますけどtypoですかね?
(ダブルクォーテーションやかっこが閉じてない)
$TITELを渡していますが、文字列なのでシングルクォーテーションで
くくる必要があるのでは?
この回答への補足
申し訳ありません、複数のデータを保存しているのですが、
ここに載せるソースに加工する際に焦って忘れてしまいました。
動かしているほうは、変数はダブルクォーテーションでくくり、かっこも閉じています。
データの保存のほうはしっかりと動いてます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP+MySQL 内部結合(INNER_JOIN...
-
MySQLのデータファイルの位置に...
-
あるDBから別のDBのテーブルをs...
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
PL/SQLをWindowsのBATファイル...
-
同じSQL文で極端に検索が遅くな...
-
sql*loader 数値のロード
-
sqlite3でcsvのインポートがで...
-
htmlタグを含んだ文字のデータ...
-
バッチファイルではパスワード...
-
html上でMySQLにアクセス(Java...
-
SQLServerのselect文でデータ数...
-
作成したレコードセットのCSV出...
-
phpmyadminでの特権が表示方法
-
ODBCを使用する場合のファイルD...
-
漢字や平仮名の文字をSQLで実行...
-
別サーバのデータベースの読み込み
-
phpMyAdmin、インポートで全角...
-
複数インスタンス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlを使ってレコード件数を取...
-
sql文のcount変数について
-
人口の都道府県別の割合を求め...
-
データベース改名
-
二重に記載されてしまう
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
数字で「そ」と「り」
-
あるDBから別のDBのテーブルをs...
-
PL/SQLをWindowsのBATファイル...
-
sql*loader 数値のロード
-
同じSQL文で極端に検索が遅くな...
-
mysqlにおけるホストのパーセン...
-
SQLServerのselect文でデータ数...
-
create databaseがうまくいきま...
-
mySQLのデータベースにhtmlのコ...
-
作成したレコードセットのCSV出...
-
バッチファイルではパスワード...
-
DBファイルの中身を直接見れな...
-
複数行をINSERTで『ORA-00911: ...
おすすめ情報