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 が実行できない【解決】