演習課題「jobsテーブルにデータを追加する」
右の環境には、MySQLからjobsテーブルのデータを表示するプログラムが、sql.phpに作成してあります。
このファイルを修正して、以下のデータを追加して表示してください。
カラム名
job_name, vitality, strength, agility, intelligence, luck
追加データ
'忍者',3,3,8,5,7
この時、各データは、print_r()関数で出力します。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#04:データベースを使ってみよう - 追加、更新、削除
ここでは、データベースにデータを追加・更新・削除する方法を学んでいきます。この機能を使うことで、例えば、RPGのプレイヤーに新しいメンバーを追加したり、名前を変更したり、削除したりできます。
public_html/sql.php<?php
$pdo = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8','root','');
$sql = 'SELECT * FROM players WHERE level >= :lower';
$statement = $pdo->prepare($sql);
$low_value = 7;
$statement->bindValue(':lower', $low_value, PDO::PARAM_INT);
$statement->execute();
$results = [];
while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$results[] = $row;
}
$statement = null;
$pdo = null;
$message = 'hello world';
require_once 'views/content.tpl.php';
public_html/views/content.tpl.php<!DOCTYPE html>
<html lang='ja'>
<?php include('header.inc.php'); ?>
<body>
<h1><?= $message ?></h1>
<?php foreach ($results as $player) { ?>
<p><?php print_r($player); ?></p>
<?php } ?>
<?php include('footer.inc.php'); ?>
</body>
</html>
# データを追加する
$name = '霧島1号';
$level = 1;
$job_id = 1;
$sql = 'INSERT INTO players (name, level, job_id) VALUES (:name, :level, :job_id)';
$statement = $pdo->prepare($sql);
$statement->bindValue(':name', $name, PDO::PARAM_STR);
$statement->bindValue(':level', $level, PDO::PARAM_INT);
$statement->bindValue(':job_id', $job_id, PDO::PARAM_INT);
$statement->execute();# データを更新する
UPDATE players SET level = 10 WHERE id = 11# データを更新する。1増加
UPDATE players SET level = level + 1 WHERE id = 11# データを削除する
DELETE FROM players WHERE id = 11# 複数のデータを削除する
DELETE FROM players WHERE id >= 11
SQL攻略 - INSERT文 http://sql.main.jp/cont/sql/in.html
SQL攻略 - UPDATE文 http://sql.main.jp/cont/sql/up.html
SQL攻略 - DELETE文 http://sql.main.jp/cont/sql/de.html
Webアプリ開発入門 PHP+MySQL編
https://paiza.jp/works/webapplicationlamp/primer
DB/SQL入門編
https://paiza.jp/works/sql/primer
PDOで接続、SELECT、プリペアドステートメントとは(PHPでMySQLに接続) - Qiita
https://qiita.com/tabo_purify/items/d1166236f3b03c7be60d
PHP: PDOStatement::bindValue - Manual
http://php.net/manual/ja/pdostatement.bindvalue.php
bindParam()とbindValue()の違い - Qiita
https://qiita.com/_dozen_/items/f6239cf1bdab6f8b0026