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

キャプチャ


いいなと思ったら応援しよう!