ちょっとしたSQLの確認ページ(開発向け)
2023-11-17 記載
概要 : PHP PDOでデータベースアクセス
Keyword : PDO, PHP, データベース, SQL,
先日はphp-crud-apiをいれて、Ajax向けなJSON取得のAPIを実装させましたが、phpMyAdminをわざわざ開いて試すほどでもないシンプルなSQLの確認として、PDOでSQLを発行するだけのページを作成しました。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>SQL Direct</title>
</head>
<body>
<?php
mb_language('Japanese');
mb_internal_encoding('UTF-8');
date_default_timezone_set("Asia/Tokyo");
setlocale(LC_ALL, 'ja_JP.UTF-8');
$dbname = (isset($_POST['dbname']) && $_POST['dbname'] ? $_POST['dbname']: 'cfsid_defaultdb');
$dbh = new PDO("mysql:host=localhost;dbname=$dbname;charset=utf8", 'cfsid_dbuser', 'password');
$sql = (isset($_POST['sql']) && $_POST['sql'] ? $_POST['sql']: 'show tables;');
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetchAll();
?>
<form method="POST" action="">
dbname:<input type=text name="dbname" size=20 value="<?=$dbname?>"><br>
<input type=submit value="exec">sql:<input type=text name="sql" size=180 value="<?=$sql?>"><br>
</form>
<textarea rows=40 cols=180>
<?=print_r($result);?>
</textarea>
</body>
</html>
ローカル開発用です。
(SQLインジェクションどころではありませんから)
これをたたき台にして、開発時はその時々に特化した機能を盛り込み、すばやくDB確認をとれるようにする、という使い道を想定しています。