mysql:4834
From: "gosikaku" <"gosikaku" <gosikaku@xxxxxxxxxx>>
Date: Mon, 24 Dec 2001 15:08:46 +0900
Subject: [mysql 04834] SELECT が実行できない
宏です。 下記のようなスクリプトを組んだのですが、これを実行してみると何故か 「SELECT * FROM userdb・・・を実行できません。」 とエラー表示されてしまい上手くいきません。 《環境》 OS:WIN2K データベース:MySQL 2.20 サーバ:Apache 1.3.12(Win32) $in{'remoteuser'}; →この変数にはフォームから送られてくるIDが代入 される。 何処が悪くてエラー表示されるのか見当がつかないので、何方かお教え 下さい宜しくお願いします。 #!perl ###設定### #モジュール&ライブラリの指定 require "jcode.pl"; use CGI_Lite; use DBI; #CGI_Liteをライブラリ関数をコールする為の宣言 $cgi= new CGI_Lite(); #フォームデータを受け取り連想配列(%in)に代入 %in=$cgi->parse_form_data(); ###設定終了### #MySQLの設定 my($dns) = "DBI:mysql:userdb:localhost"; my($username) = "root"; my($password) = "××××"; my($dbh,$sth); my(@ary); $remoteuser = $in{'remoteuser'}; #編集ここから if($in{'mode'} eq it'){ jcode::convert(\$in{'mail'}, 'euc'); if ($in{'mail'} =~ /[\xA1-\xFE][\xA1-\xFE]/ or $in{'mail'} =~ /\x8E/) { print "Content-type: text/html\n\n"; print "メールアドレスは半角英数字で入力して下さい\n"; exit; } if($in{'mail'} && $in{'mail'} !~ /^[\w\+\-\.]+@[\w\+\-]+\.[\w\+\.\-]+$/){ &Error("メールアドレスが正しく入力されていません\n"); } #ここではEUCコードでデータのやり取りをする。 $name = $in{'name'}; &jcode'convert(*name,"euc"); $mail = $in{'mail'};#メール半角英数のみなのでこのまま $nenrei = $in{'nenrei'}; &jcode'convert(*nenrei,"euc"); $zyuusyo = $in{'zyuusyo'}; &jcode'convert(*zyuusyo,"euc"); $seibetu = $in{'seibetu'}; &jcode'convert(*seibetu,"euc"); $dbh = DBI -> connect ($dns, $username, $password) or &Error("データベースへアクセスできません1"); # パスワードの変更があった場合と無かった場合の2つのUPDATE構文を作る。 if($in{'name'}){ $sth = $dbh->prepare( qq{ UPDATE userdb SET name = "$name" WHERE username = "$remoteuser"}); } if($in{'mail'}){ $sth = $dbh->prepare( qq{ UPDATE userdb SET mail = "$mail" WHERE username = "$remoteuser"}); } if($in{'nenrei'}){ $sth = $dbh->prepare( qq{ UPDATE userdb SET nenrei = "$nenrei" WHERE username = "$remoteuser"}); } if($in{'zyuusyo'}){ $sth = $dbh->prepare( qq{ UPDATE userdb SET zyuusyo = "$zyuusyo" WHERE username = "$remoteuser"}); } if($in{'seibetu'}){ $sth = $dbh->prepare( qq{ UPDATE userdb SET seibetu = "$seibetu" WHERE username= "$remoteuser"}); } $sth -> execute() or &Error("UPDATE userdbを実行できません。"); $sth -> finish(); $dbh -> disconnect(); &Reload; } $dbh = DBI -> connect ($dns, $username, $password) or &Error("データベースへアクセスできません2"); $sth = $dbh->prepare( qq{ SELECT * FROM userdb WHERE id = "$remoteuser" }); $sth -> execute() or &Error("SELECT * FROM userdb・・・を実行できません。"); @ary = $sth->fetchrow_array (); #ここでは面倒かもしれないが、SJISに戻して表示する。 $name = $ary[2]; &jcode'convert(*name, "sjis"); $id = $ary[0]; #ユーザーネームはそのままでも問題ない。 $mail = $ary[3]; &jcode'convert(*mail, "sjis"); $nenrei = $ary[4]; &jcode'convert(*nenrei, "sjis"); $seibetu = $ary[6]; &jcode'convert(*seibetu, "sjis"); $zyuusyo = $ary[5]; &jcode'convert(*zyuusyo, "sjis"); $CurrentUsers .= qq(<tr>\n); $CurrentUsers .= qq(<td width="80">$id</td>\n); $CurrentUsers .= qq(<td width="80">$name</td>\n); $CurrentUsers .= qq(<td width="80">$mail</td>\n); $C urrentUsers .= qq(<td width="80">$nenrei</td>\n); $CurrentUsers .= qq(<td width="160">$seibetu</td>\n); $CurrentUsers .= qq(<td width="80">$zyuusyo</td>\n); $CurrentData .= qq(</tr>\n); $sth -> finish(); $dbh -> disconnect(); print "Content-type: text/html\n\n"; print<<"__HTML__"; <HTML><HEAD><TITLE>ユーザーネーム [$remoteuser]</TITLE></HEAD> <BODY TEXT="#44444" BGCOLOR="#FFFFFF"> <STYLE TYPE="text/css"> <!-- A:link {color:"pink"; text-decoration: "none" ;} A:visited {color:"pink"; text-decoration: "none" ;} A:hover {color:"blue"; text-decoration: "underline" ;} TD { font-size: 11pt; } --> </STYLE> <TABLE WIDTH="100%"><TR><TD> <H2>■ユーザーネーム [$remoteuser] データ</H2> <a href="./1kaiinpage.cgi#edit">個人情報編集</a> <HR SIZE="0"> <P> <B>●現在の[$remoteuser]登録情報は以下のとおりです。</B> <table width="784" cellspacing="0" border="1" bordercolor="gray"> <tr> <td width="80"><b>ID</b></td> <td width="80"><b>名前</b></td> <td width="80"><b>メールアドレス</b></td> <td width="80"><b>年齢</b></td> <td width="160"><b>性別</b></td> <td width="80"><b>住所</b></td> </tr> $CurrentData </table> <P> <HR SIZE="0"><A NAME="edit"></A> <P> <B>●個人情報/パスワード編集</B> <table wdith="625" cellspacing="0" border="1" bordercolor="gray"> <form method="post" action="1kaiinpage.cgi"> <input type="hidden" name="mode" value="edit"> <font size="1">ニックネーム:</font><BR> <INPUT type="TEXT" name="name" size="17"> <BR> <font size="1">メールアドレス:【半角】</font><BR> <INPUT type="TEXT" name="mail" istyle="3" size="17"> <br> 住所:<br> <select name="zyuusyo"> <option selected>住所選択</option> <option>愛知</option> <option>岐阜</option> <option>静岡</option> <option>三重</option> <option>富山</option> <option>石川</option> <option>福井</option> </select> <br> <font size="1">年齢:</font><br> <select name="nenrei"> <option selected>年齢選択</option> <option>9以下</option> <option>10〜14</option> <option>15〜19</option> <option>20〜24</option> <option>25〜29</option> <option>30〜34</option> <option>35〜39</option> <option>40〜44</option> <option>45〜49</option> <option>50〜54</option> <option>55〜59</option> <option>60以上</option> </select> <BR> <font size="1">性別:</font><br> <font size="1">男</font> <input type="radio" name="seibetu" value="男"> <font size="1">女</font> <input type="radio" name="seibetu" value="女"> <BR> <INPUT type="SUBMIT" value="送信"> <INPUT type="RESET" value="取消"> </P> </form> </table> </TD></TR></TABLE> </BODY> </HTML> __HTML__ sub Error { print "Content-type: text/html\n\n"; print $_[0]; print qq(<br><a href="javascript:history.back(1)">戻る</a>); exit; } sub Reload { print "Content-type: text/html\n\n"; print qq(<META HTTP-EQUIV="Refresh" CONTENT="0;URL=./1kaiinpage.cgi">); exit; }
-> 4834 2001-12-24 15:08 ["gosikaku" <gosikaku] SELECT が実行できない 4836 2001-12-25 00:35 ┗[とみたまさひろ <tomm] 4837 2001-12-25 00:44 ┣["TOYOSHIMA, Masayuki] 4838 2001-12-25 07:13 ┃┗[sin <panocon@xxxxxxx] 4839 2001-12-25 07:28 ┗[Tatsuhiko Miyagawa <] 4847 2001-12-27 13:14 ┗["gosikaku" <gosikaku] 4848 2001-12-27 13:20 ┣[Tatsuhiko Miyagawa <] 4849 2001-12-27 13:35 ┗["KAWAI,Takanori" <GC] 4850 2001-12-27 14:27 ┗["gosikaku" <gosikaku]