掲示板つくるなかで使ったMySQLの文を紹介

CREATE文:データベース内にテーブルを作成

データを登録するための「テーブル」を作成する id ・自動で登録されていうナンバリング。 name ・名前を入れる。文字列、半角英数で32文字。 comment ・コメントを入れる。文字列、長めの文章も入る。 この3つを作成したいとき

  1. $sql = "CREATE TABLE IF NOT EXISTS test1"
  2. ." ("
  3. . "id INT AUTO_INCREMENT PRIMARY KEY,"
  4. . "name char(32),"
  5. . "comment TEXT"
  6. .");";
  7. $stmt = $pdo->query($sql);

テーブルがしっかりできているか確認する方法

  1. $sql ='SHOW TABLES';
  2. $result = $pdo -> query($sql);
  3. foreach ($result as $row){
  4. echo $row[0];
  5. echo '<br>';
  6. }
  7. echo "<hr>";

実行したときにtest1と表示されればOK 最初にこの方法でテーブルができているか確認しながら進めるのがおすすめ


テーブルができていることを確認したら,次にテーブルの構成要素も確認しておく

  1. $sql ='SHOW CREATE TABLE tbtest';
  2. $result = $pdo -> query($sql);
  3. foreach ($result as $row){
  4. echo $row[1];
  5. }
  6. echo "<hr>";

こちらは実行したときに,id ,name,commentが表示されていればOK


INSERT文:データを入力(データレコードの挿入)

  1. $sql = $pdo -> prepare("INSERT INTO test1 (name, comment) VALUES (:name, :comment)");
  2. $sql -> bindParam(':name', $name, PDO::PARAM_STR);
  3. $sql -> bindParam(':comment', $comment, PDO::PARAM_STR);
  4. $name = '(好きな名前)';
  5. $comment = '(好きなコメント)'; //好きな名前、好きな言葉は自分で決める
  6. $sql -> execute();

こちらを実行しても何も起こらないのでしっかりデータが挿入されたかを確認する必要がある


SELECT文:入力したデータレコードを抽出し、表示する

  1. $sql = 'SELECT * FROM test1';
  2. $stmt = $pdo->query($sql);
  3. $results = $stmt->fetchAll();
  4. foreach ($results as $row){
  5. //$rowの中にはテーブルのカラム名が入る
  6. echo $row['id'].',';
  7. echo $row['name'].',';
  8. echo $row['comment'].'<br>';
  9. echo "<hr>";
  10. }

これでINSERT文で実行した名前とコメントが表示されていれば成功


UPDATE文:入力されているデータレコードの内容を編集

tets1のテーブルで1つめに投稿されたものを変更する場合

  1. $id = 1; //変更する投稿番号
  2.     $name = "(変更したい名前)";
  3.     $comment = "(変更したいコメント)"; //変更したい名前、変更したいコメントは自分で決めること
  4.     $sql = 'UPDATE test1 SET name=:name,comment=:comment WHERE id=:id';
  5.     $stmt = $pdo->prepare($sql);
  6.     $stmt->bindParam(':name', $name, PDO::PARAM_STR);
  7.     $stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
  8.     $stmt->bindParam(':id', $id, PDO::PARAM_INT);
  9.     $stmt->execute();

DELETE文:入力したデータレコードを削除

データベースのテーブルに登録したデータレコードは、DELETE文 で削除する事が可能です。 ここでは、id の値が 2 の データレコードを削除してみましょう。

  1. $id = 2;
  2.     $sql = 'delete from tbtest where id=:id';
  3.     $stmt = $pdo->prepare($sql);
  4.     $stmt->bindParam(':id', $id, PDO::PARAM_INT);
  5.     $stmt->execute();

DROP文:作成されたテーブル自体を削除する

DROP文 は、既に作成されたテーブル自体を丸ごと削除するSQL文です。 「テーブルを消しますか?」などの事前確認なしに削除が行われ、データも残りません。 また(困ったことに?)SQL自体は非常にシンプルで、実行も簡単です。 従って、使用する際は細心の注意をしてください。

  1. $sql = 'DROP TABLE test1';
  2.         $stmt = $pdo->query($sql);

このミッションは、実行が成功しても画面に結果が出力されません。 このミッションが正しく実行されているかどうかは mission_4-3 、SHOW TABLES で確認することになります。