PHPでMariaDBにフォームのデータをインサートする
さて、朝の時間を使って会員登録機能を実装しよう!のコーナがやってきました。前回は、phpからdbへのデータのインサート前までやりましたね。今回は、データをインサートし終えたところまでやりました。ヤッタネ!!!データをDBに登録する変数の部分 $_POST["name"]
をクオーテーションで囲ってもダブルクオーテーションで囲っても、うまくいきませんでした。
次やること
データベースにデータを登録できたから、このphpの実装のロジックは概ね終わったってわけ。だから、次は、ログインページをphpでまた作ることにする。んで、ログインボタンを押したら、dbの中に入力情報があるか比較する。あれば会員ページに飛んで、なければエラーページに飛ばすか、そのページをリロードさせて、アラート的なものを表示させる。
実装
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>会員登録</title>
</head>
<body>
<?php
echo "登録情報をご確認ください<br />";
echo "-------------";
echo "<br />";
echo "<br />";
echo $_POST["name"];
echo "<br />";
echo $_POST["mail"];
echo "<br />";
echo $_POST["password"];
$dsn = 'サーバーの接続情報';
$user = 'UserMai';
$password = 'password';
try{
$dbh = new PDO($dsn, $user, $password);
echo('接続に成功しました。<br>');
# $dbh->query('SET NAMES utf8');
# $sql = 'select * from user';
# foreach ($dbh->query($sql) as $row) {
# print($row['id']);
# print($row['name'].'<br>');
#データをデータベースにインサートしている
# = $pdo -> prepare("INSERT INTO UserName (name) VALUES (:name)");
// INSERT文を変数に格納
$sql = "INSERT INTO UserName (name) VALUES (:name)";
// 挿入する値は空のまま、SQL実行の準備をする
$stmt = $dbh->prepare($sql);
// 挿入する値を配列に格納する
$params = array(':name' => $_POST["name"]);
// 挿入する値が入った変数をexecuteにセットしてSQLを実行
$stmt->execute($params);
// 登録完了のメッセージ
echo '登録完了しました';
#挿入されたデータをブラウザに表示する
#エラーが出た場合は、どこを見ればいいんだろう
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}
?>
</body>
</html>
db確認
SELECT * FROM UserName;
+----------------+
| name |
+----------------+
| Aoki |
| 綾瀬 |
| $_POST["name"] |
| Yamada |
| Akanishi |
+----------------+
5 rows in set (0.00 sec)
実行確認
出来てるね!!