こんにちは、さるまりんです。
最近はフレームワークを使っていてあまりやっていなかったのですが、素のPHPでデータベースにデータを登録する機会があったのでシンプルなメモとしてPDO
を使ったinsert
を残しておきます。
コードはこんな感じです
// ローカルホストのデータベースsaludbに接続
$conn = 'mysql:dbname=saludb;host=localhost';
// ユーザーはsalu
$user = 'salu';
// パスワードはsalupswd
$password = 'salupswd';
try {
// データベースに接続します
$dbh = new PDO($conn, $user, $password);
// できた?
if ($dbh == null) die('データベース接続失敗');
// 実行するSQLです
$sql = 'insert into salu_accesses (name, access_ts) values (:name, :access_dt)';
// プリペアドステートメントを準備します
$sth = $dbh->prepare($sql);
// データを準備します
$data = [
':name' => 'salumarine',
'access_ts' => '2023/08/14 07:30:00',
];
// データを渡してSQLを実行します
$result = $sth->execute($data);
// 後片付けです
$sth = null;
$dbh = null;
} catch (PDOException $e) {
// 何かしらエラーが発生しています
die('エラー発生 : ' . $e->getMessage());
}
コード内にコメントで記しましたが
1. new PDO()
で接続
2. prepare()
でステートメントを準備
3. データを準備
4. execute()
で実行
の流れです。
update
でもdelete
でもこの流れは同じです。
データが文字化けしてしまう場合はデータベースに接続できた後に
環境に合わせて
$dbh->query('SET NAMES sjis');
や
$dbh->query('SET NAMES utf8');
などします。文字化けなおったかな。
簡単なことなんですがやらないと忘れてしまいます。
たまには基本に戻ることも大切かと思っています。
読んでくださってありがとうございました。
それではまた!