掲示板つくるなかで使ったMySQLの文を紹介
データを登録するための「テーブル」を作成する id ・自動で登録されていうナンバリング。 name ・名前を入れる。文字列、半角英数で32文字。 comment ・コメントを入れる。文字列、長めの文章も入る。 この3つを作成したいとき
- $sql = "CREATE TABLE IF NOT EXISTS test1"
- ." ("
- . "id INT AUTO_INCREMENT PRIMARY KEY,"
- . "name char(32),"
- . "comment TEXT"
- .");";
- $stmt = $pdo->query($sql);
- $sql ='SHOW TABLES';
- $result = $pdo -> query($sql);
- foreach ($result as $row){
- echo $row[0];
- echo '<br>';
- }
- echo "<hr>";
実行したときにtest1と表示されればOK 最初にこの方法でテーブルができているか確認しながら進めるのがおすすめ
- $sql ='SHOW CREATE TABLE tbtest';
- $result = $pdo -> query($sql);
- foreach ($result as $row){
- echo $row[1];
- }
- echo "<hr>";
こちらは実行したときに,id ,name,commentが表示されていればOK
- $sql = $pdo -> prepare("INSERT INTO test1 (name, comment) VALUES (:name, :comment)");
- $sql -> bindParam(':name', $name, PDO::PARAM_STR);
- $sql -> bindParam(':comment', $comment, PDO::PARAM_STR);
- $name = '(好きな名前)';
- $comment = '(好きなコメント)'; //好きな名前、好きな言葉は自分で決める
- $sql -> execute();
こちらを実行しても何も起こらないのでしっかりデータが挿入されたかを確認する必要がある
- $sql = 'SELECT * FROM test1';
- $stmt = $pdo->query($sql);
- $results = $stmt->fetchAll();
- foreach ($results as $row){
- //$rowの中にはテーブルのカラム名が入る
- echo $row['id'].',';
- echo $row['name'].',';
- echo $row['comment'].'<br>';
- echo "<hr>";
- }
これでINSERT文で実行した名前とコメントが表示されていれば成功
tets1のテーブルで1つめに投稿されたものを変更する場合
- $id = 1; //変更する投稿番号
- $name = "(変更したい名前)";
- $comment = "(変更したいコメント)"; //変更したい名前、変更したいコメントは自分で決めること
- $sql = 'UPDATE test1 SET name=:name,comment=:comment WHERE id=:id';
- $stmt = $pdo->prepare($sql);
- $stmt->bindParam(':name', $name, PDO::PARAM_STR);
- $stmt->bindParam(':comment', $comment, PDO::PARAM_STR);
- $stmt->bindParam(':id', $id, PDO::PARAM_INT);
- $stmt->execute();
データベースのテーブルに登録したデータレコードは、DELETE文 で削除する事が可能です。 ここでは、id の値が 2 の データレコードを削除してみましょう。
- $id = 2;
- $sql = 'delete from tbtest where id=:id';
- $stmt = $pdo->prepare($sql);
- $stmt->bindParam(':id', $id, PDO::PARAM_INT);
- $stmt->execute();
DROP文 は、既に作成されたテーブル自体を丸ごと削除するSQL文です。 「テーブルを消しますか?」などの事前確認なしに削除が行われ、データも残りません。 また(困ったことに?)SQL自体は非常にシンプルで、実行も簡単です。 従って、使用する際は細心の注意をしてください。
- $sql = 'DROP TABLE test1';
- $stmt = $pdo->query($sql);
このミッションは、実行が成功しても画面に結果が出力されません。 このミッションが正しく実行されているかどうかは mission_4-3 、SHOW TABLES で確認することになります。