PHPデーターベース

Last-modified: 2025-10-10 (金) 17:08:41

データベース接続

<?php
try {
$pdo = new PDO("mysql:host=○○;dbname=△△;charset=utf8mb4", "××", "□□");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $e) {
echo "接続失敗: " . $e->getMessage();
}
?>

○○はホストのサーバー名 △△はデーターベース名
××はユーザー名 □□はパスワード名

XAMPPの場合
サーバー名 localhost  データーベース名 自分で作成した名前
ユーザー名 root  パスワード 空白にする

Mysqlでデーターベースの表作成

XAMPPを起動→Mysqlのadminをクリック→左のバーのデーターベース名を選択(最初の場合は新規作成から新しく作る)→上バーのSQLを押す
下の内容を試しに入れる→実行
データーベースの表が作成できる。
途中のテキストには「,」がいるが最後のテキストには「,」がいらない。

CREATE TABLE 練習の表 (
番号 INT PRIMARY KEY AUTO_INCREMENT,
タイトル1 VARCHAR(255) NOT NULL,
タイトル2 VARCHAR(255) NOT NULL,
画像データ LONGBLOB NOT NULL
);

意味
作成する表の名前 練習の表
表のタイトル
番号 数字 自動で入力され1から順に増えていく数
タイトル1 文字 空白以外
タイトル2 文字 空白でない
画像データ バイナリーデータ

データベースの表削除

上バーの操作を押す→下にあるテーブルを削除するを押す

データーベース制御

入力

$stmt = $pdo->prepare("INSERT INTO 練習の表 (タイトル1, タイトル2) VALUES (?, ?)");
$stmt->execute([$, "サンプルB"]);

?の文字のところにexecute内の[]の中の内容が入る。
?を使わずにそのままユーザーが入れた内容を使ってはいけない。
例  $stmt = $pdo->prepare("INSERT INTO 練習の表 (タイトル1, タイトル2) VALUES ('サンプルA', 'サンプルB')");
値ではないプログラムを入れられてしまうことがある。
SQLインジェクションという。

上書き

stmt = $pdo->prepare("UPDATE 練習の表 SET タイトル1 = ?, タイトル2 = ? WHERE 番号 = ?");
$stmt->execute(["新しいタイトルA", "新しいタイトルB", 1]);
echo "更新成功!";

番号が1の部分のタイトル1とタイトル2を上書き
番号が存在しない場合は追加されない

表を削除

$stmt = $pdo->prepare("DELETE FROM 練習の表 WHERE 番号 = ?");
$stmt->execute([1]);
echo "削除成功!";

番号が1の行の内容を削除