PHPweb入門編 データベースを使う
$sql = 'SELECT * FROM players WHERE level >= :lower';
//levelカラムの値が:lowerより大きい行だけ取り出す
//:lower ←これは好きな文字を指定して良い。:testでも:iでもいい。
$statement = $pdo->prepare($sql);
$low_value = 7; // 変数を:lowerに設定することもできる
$statement->bindvalue(':lower',$low_value, PDO::PARAM_INT);
// bindvalue=「:lower」のようなラベルを任意の値に置き換える
// PARAM_INT=整数型の指定
$statement->execute();
PHPからSQLを操作する場合、
$sql =
のあとにINSERT,UPDATE,DELETEなどを書き始める。
・PHPからSQLにデータを追加する(ラベルと変数を使う場合)
$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();
・PHPからSQLにデータを追加する(ラベルと変数を使わない場合)
$sql = 'INSERT INTO jobs
(job_name, vitality, strength, agility, intelligence, luck)
VALUES ("忍者",3,3,8,5,7)';
・左結合する(LEFT JOIN)
$sql = 'SELECT * FROM players LEFT JOIN jobs ON jobs.id = players.job_id';
// jobs.id = 2つのテーブルに同じ名前のカラムがある場合、
// 区別するために「テーブル名.カラム名」と書く
■SQLのWHEREで、特定idを指定する
<?php
$pdo = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8','root','');
// idに値が入っているかを確認する。入っていたら$idに代入する。
if(isset($_REQUEST['id'])) {
$id = $_REQUEST['id'];
}
$sql = 'SELECT * FROM jobs WHERE id = :id';
$statement = $pdo->prepare($sql);
$statement->bindValue(':id', $id, PDO::PARAM_INT);
$statement->execute();
$row = $statement->fetch(PDO::FETCH_ASSOC);
print_r($row);
$statement = null;
$pdo = null;
$_REQUEST = getメソッド?
だから、?id=1をアドレスの最後につけると、id毎に値が表示される?↓
REQUEST は現在の $_GET、$_POST、$_COOKIE などの内容をまとめた変数
なるべく使わない方がいい、postなら$_POST、getなら$_GETにした方がいい
https://qiita.com/icelandnono/items/2cb7c281ac52dd7bdbd0