【PHP】AWS RDSのデータベースからデータ取得

2020年12月17日

データベースに接続するのはこちら

クエリの実行

ユーザー入力を受け取ってSQL文を動的に生成する場合は プリペアドステートメント と プレースホルダ を使わなければなりません。

疑問符プレースホルダ

PDO::prepare → PDOStatement::bindValue → PDOStatement::execute の3ステップでクエリを実行

$stmt = $dbh->prepare('SELECT * FROM users WHERE gender = ? AND age = ?');
$stmt->bindValue(1, $gender);
$stmt->bindValue(2, (int)$age, PDO::PARAM_INT); 
$stmt->execute();

//文字列以外のものを扱う際に明示的なキャストが必要

PDO::prepare → PDOStatement::execute の2ステップでクエリを実行する

$stmt = $dbh->prepare('SELECT * FROM users WHERE city = ? AND gender = ?');
$stmt->execute([$city, $gender]);

SELECT の結果を取得する

$rows = $stmt->fetchAll();
var_dump($rows);

特定のカラムだけ一気に全件取得して1次元配列としたい場合,第1引数に PDO::FETCH_COLUMN を指定し,第2引数にカラムの「番目」を渡す.「番目」は 0 から始まる.省略した場合は 0 を指定したとみなされる。

$values = $stmt->fetchAll(PDO::FETCH_COLUMN);
var_dump($values);

PHP

Posted by Next-k