• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:どのような処理をしているのでしょうか?)

掲示板作成の勉強におけるformCheck()関数の処理

このQ&Aのポイント
  • http://php.birdlab.com/download/1001 のプログラムを参考に掲示板作成の勉強をしています。
  • formCheck()関数は、投稿内容の重複チェックを行う処理です。
  • 指定されたID、名前、コメントが直近1時間以内に投稿されていない場合、trueを返します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#123003
noname#123003
回答No.3

横槍を入れますが、クエリの部分の文章はPHPとは言語で、 別のSQL文というものです。 SQL文はデータベース上で使用する言語で、 複雑なデータの抽出条件を指定することが可能です。 また、データベースは様々ものが現在使われており、 ご質問のソース上で使用しているのは、 接頭語がmysql_の関数(※1)を使用していることからわかるように、 MySQLというデータベースです。 詳しい内容については別途調べ、わからないことは [技術者向]コンピューター>データベース>MySQL にて質問されることをお勧めします。 (※1)この関数は低レベルデータベース関数で、別のデータベース、例えばPostgreSQLなら、接頭語がpg_など。

その他の回答 (3)

noname#123003
noname#123003
回答No.4

訂正 × 言語で、別の ○ 別の言語で、

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

POSTデータと同じ内容で時刻が現在より1時間以内のものがあるかどうかを調べています おそらく2重投稿のチェックだろうと思います 文字列のエスケープは addslashes より mysql_real_escape_string を使う方が推奨されます

回答No.1

SQL文(クエリ)を作成して、実行しています。 そして、最後で実行した結果を判定し、値を返しています。 見やすくすると、以下の感じになります。 //------------- //SQL文を作成 //------------- $query = " SELECT   count(*) FROM   onebbs WHERE   id = " . $this->post['id']. "    and   name = '" . addslashes($this->post['name']) . "'    and   comment = '" . addslashes( $this->post['comment']) . "'    and   date > adddate(now(),interval -1 hour) "; /********************* 連結している変数の値は分かりませんが、以下の感じにSQLを作っています。 SELECT  count(*) FROM  onebbs WHERE  id = 'hoge' AND  name = 'hoge' AND  comment = 'コメント' AND  date > adddate(now(),interval -1 hour) ************************/ //------------- //SQL文を実行し、結果を取得する //------------- $result = mysql_query($query); //------------- // 結果を判定する //------------- if ($result !== false) {  if (mysql_result($result, 0, 0) == 0) {   return true;  } } ----- 細かい所は説明していませんが、なんとなく分かりましたでしょうか?

kita813
質問者

補足

回答ありがとうございます。だいたい把握することができました。 ただ、まだいくつか分からない点が。 これは、どのような$queryを発行しているのでしょうか? この処理は何のために行っているのか? 引き続きよろしくお願いします。

関連するQ&A