PHPで作成したフォーム等から受け取った$_POSTの値をMySQLデータベースに挿入する方法をメモ。
DB接続
どのデータベースにどのユーザーが何のパスワードで接続しようしているかを記述。
$db = new PDO('mysql:dbname=[データベース名];localhost=[ホスト名またはIPアドレス];charset=utf8mb4','[ユーザー名]','[ログインパスワード]');
例えば、
・データベース名:mydb
・ホスト:ローカルホスト(ローカルホストの場合は、localhostか127.0.0.1と記述する)
・ユーザー名:root
・パスワード:root
の場合
//例)
$db = new PDO('mysql:dbname=mydb;localhost=127.0.0.1;charset=utf8mb4','root','root');
オプションを記述する場合
$db = new PDO('mysql:dbname=mydb;localhost=127.0.0.1;charset=utf8mb4','root','root',
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION(オプション例),
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC(オプション例),
]
);
MySQLにデータを挿入する
($_POST配列にデータが入っている前提)
「exec」を使って挿入する場合。
ただし、セキュリティ的に次の「prepare」を使う方が良い。
$db->exec('INSERT INTO [テーブル名] SET [カラム名]="'.$_POST['[カラム名]'].'"');
「prepare」を使う場合
$statment = $db->prepare('INSERT INTO [テーブル名] SET [カラム名]=?');
$statment->execute(array($_POST['[カラム名]']));