mysql:4866
From: "gosikaku" <"gosikaku" <gosikaku@xxxxxxxxxx>>
Date: Sun, 6 Jan 2002 18:01:29 +0900
Subject: [mysql 04866] SELECT が実行できない
宏です。 MySQLとPerlで掲示板を作成しているのですが、エラーメッセージが表示され上手く いきません。 どなたか解決方法をお教え下さい。 《環境》 ・OS:Win2K ・データベース:MySQL2.20 ・言語:Perl5 ・サーバ:Apache1.3.12 《データベース内容》 フィールド フィールドタイプ 空の値(Null) その他 bangou int(11) いいえ auto_increment Primary hizuke datetime いいえ komento text いいえ hitokoto tinytext いいえ 《作成中のプログラム》 #!perl ###設定### #モジュール&ライブラリの指定 use DBI; require "cgi-lib.pl"; require "jcode.pl"; #KB数で最高データ値を記入 $MaxData = 600; #利用するMySQLデータベースの名前を記入 $MySQLDataBase = "keiziban"; #MySQLユーザー名を記入 $MySQLUserName = "root"; #MySQLパスワードを記入 $MySQLPassword = "aaaaa"; #サーバーに時差がある場合は時差をプラスする $TimeDiff = 0; ###設定終了### $cgi_lib::maxdata = int($MaxData * 1024); $ret = &ReadParse(\%cgi_data,\%cgi_cfn,\%cgi_ct,\%cgi_sfn); $cgi_lib::maxdata = $cgi_lib::maxdata; #新規投稿ここから if($cgi_data{'mode'} eq 'new'){ &Error("コメントが入力されていません。") unless $cgi_data{'komento'}; $dbh = DBI -> connect ("DBI:mysql:$MySQLDataBase:localhost", $MySQLUserName, $MySQLPassword) or &Error("データベースへアクセスできません。"); $komento = $cgi_data{'komento'}; &jcode'convert(*komento,"sjis"); $hitokoto = $cgi_data{'hitokoto'}; &jcode'convert(*syumi,"sjis"); #日本語コードに問題が出ないようにする $komento = quotemeta($komento); $hitokoto = quotemeta($hitokoto); $sth = $dbh->prepare( qq{ INSERT INTO bbs1 VALUES(NULL, DATE_ADD(NOW(), INTERVAL $TimeDiff HOUR),"$komento", "$hitokoto")}); $sth -> execute() or &Error("MySQL INSERT コマンドを実行できません。$DBI::err ($DBI::errstr)"); $sth -> finish(); unlink($cgi_sfn{'file'}); print "Location: ./upbbs.cgi\n\n"; exit; }#新規投稿ここまで #投稿削除ここから if($cgi_data{'mode'} eq 'del'){ &Error("パスワードが一致しません。") if($cgi_data{'password'} ne $MySQLPassword); $num = $cgi_data{'delnum'}; if($num == 0){ print "Location: ./upbbs.cgi\n\n"; exit; } $dbh = DBI -> connect ("DBI:mysql:$MySQLDataBase:localhost", $MySQLUserName, $MySQLPassword) or &Error2("データベースへアクセスできません。"); $sth = $dbh->prepare( qq{ DELETE FROM bbs1 WHERE bangou = $bangou }); $sth -> execute() or &Error2("MySQLコマンド DELETE を実行できません。"); $sth -> finish(); $dbh -> disconnect(); print "Location: ./upbbs.cgi\n\n"; exit; }#投稿削除ここまで #投稿記事表示 if($cgi_data{'startview'} && $cgi_data{'endview'}){ $StartView = $cgi_data{'startview'}; $EndView = $cgi_data{'endview'}; }else{ $StartView = "0"; $EndView = "10"; } $dbh = DBI -> connect ("DBI:mysql:$MySQLDataBase:localhost", $MySQLUserName, $MySQLPassword) or &Error("データベースへアクセスできません。"); $sth = $dbh->prepare( qq{ SELECT bangou FROM bbs1 ORDER BY bangou DESC LIMIT 1 }); $sth -> execute() or &Error("MySQLコマンド SELECT を実行できません。1"); $MaxNumber = $sth -> fetchrow_array(); $sth2 = $dbh->prepare( qq{ SELECT bangou, hizuke, komento, hitokoto, FROM bbs1 ORDER BY bangou DESC LIMIT $StartView,10 }); $sth2 -> execute() or &Error("MySQLコマンド SELECT を実行できません。2"); while (@ary = $sth2 -> fetchrow_array()){ $CurrentData .= <<__CURRENTDATA_EOF__; <P><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH="600"> <TR><TD BGCOLOR="#000000"> <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4> <TR> <TD BGCOLOR="#000000" COLSPAN="2"><FONT COLOR="#FFFFFF"><B>掲示板 </B></FONT></TD> </TR> <TR> <TD BGCOLOR="#FFCC00" WIDTH="200" ALIGN= "RIGHT">日付</TD> <TD BGCOLOR="#FFFFFF"> $ary[1]</TD> </TR> <TR> <TD BGCOLOR="#FFCC00" WIDTH="200" ALIGN= "RIGHT">コメント</TD> <TD BGCOLOR="#FFFFFF"> $ary[2]</TD> </TR> <TR> <TD BGCOLOR="#FFCC00" WIDTH="200" ALIGN= "RIGHT">一言</TD> <TD BGCOLOR="#FFFFFF"> $ary[3]</TD> </TR> </TABLE> </TD></TR> </TABLE> __CURRENTDATA_EOF__ } $sth -> finish(); $sth2 -> finish(); $dbh -> disconnect(); $NextStartView = $StartView + 10; $NextEndView = $EndView + 10; $PreviousStartView = $StartView - 10; $PreviousEndView = $EndView - 10; if($MaxNumber <= 10){ $NextView = ""; $PreviousView = ""; } if($MaxNumber > 10){ if($EndView < $MaxNumber){ $NextView = qq(<a href="./upbbs.cgi?startview=$NextStartView&endview=$NextEndView">古い10件を 表\示>></a>); } if($StartView != 0){ $PreviousView = qq(<a href="./upbbs.cgi?startview=$PreviousStartView&endview=$PreviousEndView"> <<新しい10件を表\示>></a>); } } print "Content-type: text/html\; charset=shift_jis\n\n"; print<<"__HTML__"; <HTML><HEAD><TITLE>[掲示板]</TITLE><HEAD> <BODY BGCOLOR="gray" TEXT="#000000" LINK="#000000" VLINK="#000000"> <CENTER> <IMG SRC="bbs.gif" WIDTH="468" HIEGHT="60"><P> <HR WIDTH="600" SIZE="0" COLOR="#000000"> <A HREF="http://www.aaa.com/">トップページへ戻る</A> <HR WIDTH="600" SIZE="0" COLOR="#000000"> <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="600"> <form method="post" enctype="multipart/form-data" action="upbbs.cgi"> <input type="hidden" name="mode" value="new"> <TR> <TD WIDTH="180" ALIGN= "RIGHT" VALIGN="TOP">◆<B>コメント:</B></TD> <TD><TEXTAREA COLS="50" ROWS="2" NAME=""></TEXTAREA></TD> </TR> <TR> <TD WIDTH="180" ALIGN= "RIGHT">◆<B>趣味:</B></TD> <TD><INPUT TYPE="TEXT" NAME="syumi " SIZE="10"></TD> </TR> </form> </TABLE> $CurrentData <P><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="600"> <TR><TD ALIGN="LEFT">$PreviousView</TD><TD ALIGN="RIGHT">$NextView</TD></TR> </TABLE> <HR WIDTH="600" SIZE="0" COLOR="#000000"> <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="600"> <FORM METHOD="POST" ACTION="upbbs.cgi"> <INPUT TYPE="HIDDEN" NAME="mode" VALUE="del"> <TR><TD ALIGN="RIGHT">●投稿番号:<INPUT TYPE="TEXT" NAME="delnum" SIZE="3"> ●パスワード:<INPUT TYPE="PASSWORD" NAME="password" SIZE="10"> <INPUT TYPE="SUBMIT" VALUE="記事削除 (管理者用)"></TD> </FORM></TR></TABLE> </CENTER> </BODY></HTML> __HTML__ exit; sub Error { print "Content-type: text/html\; charset=shift_jis\n\n"; print<<__ERROR__; <HTML><HEAD><TITLE>ERROR!!</TITLE></HEAD> <BODY BGCOLOR="gray"> <CENTER> <FONT COLOR="RED"> <P><BR> <HR SIZE="0" COLOR="#000000"> <P> <B>$_[0]<BR><BR> ブラウザの戻るボタンで戻ってやり直ししてください。 <P> <HR SIZE="0" COLOR="#000000"> </FONT> </BODY></HTML> __ERROR__ unlink($cgi_sfn{'file'}); exit; } 上記のプログラムの、 $sth2 = $dbh->prepare( qq{ SELECT bangou, hizuke, komento, hitokoto, FROM bbs1 ORDER BY bangou DESC LIMIT $StartView,10 }); $sth2 -> execute() or &Error("MySQLコマンド SELECT を実行できません。2"); の部分のSELECTが上手く実行できないようでブラウザには、 「MySQLコマンド SELECT を実行できません。2」 と表示されてしまいます。 どうか、何方か宜しければお教え下さい。 宜しくお願いします。
-> 4866 2002-01-06 18:01 ["gosikaku" <gosikaku] SELECT が実行できない 4867 2002-01-06 18:28 ┣[とみたまさひろ <tomm] 4868 2002-01-06 20:38 ┗[楠吉彦 <moredebu@xxx] 4869 2002-01-07 00:56 ┗["gosikaku" <gosikaku] Re: SELECT が実行できない【解決】