mysql:4133
From: A Tsukui <A Tsukui <milano@xxxxxxxxxx>>
Date: Fri, 03 Aug 2001 16:55:12 +0900
Subject: [mysql 04133] Re: MySQL INSERT コマンドを実行できない
のぶをです。
困っている状況は、全く新しいレコードが作られないと言うことですか?
それとも、意図と違うデータが挿入されるということですか?
新しいレコードが作られない場合。
kaimono テーブルはどのような構成ですか?
kategorii の他にカラムはありませんか?
それが not null になってたりすると、エラーが起きるでしょう。
意図と違うデータが挿入される場合。
≫ $sth = $dbh->prepare(qq{insert into kaimono (kategorii)
≫values("kategorii")});
の部分、values の後が、"kategorii" ではなく、"$kategorii" です。
これは、どちらの状況にせよ修正すべきですね。
$sth = $dbh->prepare(qq{insert into kaimono (kategorii) values (?)});
$sth->execute($kategorii);
とplaceholderを使用することをオススメします。
On Fri, 3 Aug 2001 16:26:25 +0900
"tamuzin2" <tamuzin@xxxxxxxxxx> wrote:
≫田中です。
≫
≫下記のようなPerlでのデータベースを操作するプログラムを作成したのですが、
≫フォームから送信したデータがデータベースに挿入されなくて困っています。
≫どなたか下記のプログラムのどこが悪くてデータベースに挿入されないのかお教えく
≫ださい宜しくお願い致します。
≫
≫#!perl
≫
≫require"jcode.pl";
≫
≫use DBI;
≫use CGI_Lite;
≫
≫my($dns) = "DBI:mysql:shopping:localhost";
≫my($username) = "root";
≫my($password) = "aaaa";
≫my($dbh,$sth);
≫my(@ary);
≫
≫$RemoteUser=$ENV{'REMOTE_USER'};
≫
≫$cgi=new CGI_Lite();
≫%in=$cgi->parse_form_data();
≫print"Content-type: text/plain\n\n";
≫
≫#新規登録処理
≫if($in{'mode'} eq 'new'){
≫ &Error("記入漏れがあります。") unless $in{'kategorii'};
≫
≫ #ここではEUCコードでデータを挿入してみる事にする。表示はSJISを利用
≫ $kategorii=$in{'kategorii'};
≫ &jcode'convert(*kategorii,"euc");
≫
≫ $dbh = DBI -> connect ($dns,$username,$password) or &Error("データベースへ
≫アクセスできません。");
≫
≫ $sth = $dbh->prepare(qq{insert into kaimono (kategorii)
≫values("kategorii")});
≫
≫ $sth -> execute() or &Error("MySQL INSERT コマンドを実行できません。");
≫
≫ $sth -> finish();
≫ $dbh -> disconnect();
≫}#新規登録処理はここまで
≫
≫ $dbh = DBI -> connect ($dns,$username,$password) or &Error("データベースへ
≫アクセスできません。");
≫
≫ $sth = $dbh->prepare(qq{select * from kaimono});
≫
≫ $sth -> execute() or &Error("select * from kaimonoを実行できません。");
≫
≫ $sth -> finish();
≫ $dbh -> disconnect();
≫
≫
≫print "content-type: text/html\n\n";
≫print<<"__HTML__";
≫<html><head><title>ショッピング管理ページ</title></head>
≫<body text="#44444" bgcolor="#ffffff">
≫<table width="32%" border="0" cellspacing="1" cellpadding="1"
≫align="center">
≫ <tr>
≫ <td>
≫ <h2 align="center">◆ショッピング管理ページ◆</h2>
≫ </td>
≫ </tr>
≫</table>
≫<br>
≫<br>
≫<form method="post" action="kaimono.cgi">
≫ <table width="70%" border="3" cellspacing="4" cellpadding="5"
≫align="center">
≫ <tr>
≫ <td width="21%" bgcolor="#99CCFF">
≫ <div align="center"><font size="3"><b>カテゴリー</b></font></div>
≫ </td>
≫ <td width="79%" bgcolor="#FDF9C1">
≫ <select name="kategorii">
≫ <option>映像機器</option>
≫ <option>記憶装置</option>
≫ <option>ディスプレイ</option>
≫ <option>ネットワーク機器</option>
≫ <option>入力装置</option>
≫ <option>PC本体</option>
≫ <option>プリンター</option>
≫ <option>音声機器</option>
≫ <option>ソフト</option>
≫ <option>スキャナー</option>
≫ </select>
≫ </td>
≫ </tr>
≫ <input type="hidden" name="mode" value="new">
≫ <tr>
≫ <td colspan="2">
≫ <div align="center">
≫ <input type="submit" name="Submit" value="商品登録">
≫ </div>
≫ </td>
≫ </tr>
≫ </table>
≫</form>
≫__HTML__
≫
≫sub Error{
≫#print "content-type: text/html\n\n";
≫print $_[0];
≫print qq(<br><a href="javascript:history.back(1)">戻る</a>);
≫exit;
≫}
≫
≫解りにくいプログラムで申し訳ございませんが宜しくお願いいたします。
≫
4109 2001-08-01 10:55 ["tamuzin2" <tamuzin@] バイナリーデータを扱う方法は? 4121 2001-08-03 00:17 ┗[Tatsuhiko Miyagawa <] 4122 2001-08-03 01:04 ┣["tamuzin2" <tamuzin@] 4124 2001-08-03 06:08 ┃┗[Tatsuhiko Miyagawa <] 4131 2001-08-03 16:26 ┃ ┗["tamuzin2" <tamuzin@] 4132 2001-08-03 16:26 ┗["tamuzin2" <tamuzin@] MySQL INSERT コマンドを実行できない -> 4133 2001-08-03 16:55 ┗[A Tsukui <milano@xxx] 4134 2001-08-03 17:31 ┗["tamuzin2" <tamuzin@] Re: MySQL INSERT コマンドを実行できない【解決】 4135 2001-08-03 17:52 ┣["Kawai,Takanori" <GC] 4136 2001-08-03 18:07 ┗[Yasuhide OMORI / 大�] placeholder (Re: MySQL INSERT コマンドを実行できない【解決】) 4137 2001-08-03 18:58 ┗["tamuzin2" <tamuzin@]