前提・実現したいこと
フォームからの情報をbindParamを使ってデータベースに保存したい。
発生している問題・エラーメッセージ
現状、以下に記載したソースコードを実行すると、ブラウザ上にechoによって"message OK"は出力されるのですが、データベースを確認してもフォームからの情報が新規レコードとして保存できていません。
該当のソースコード
php
1try { 2 $db = new PDO('mysql:dbname=php_practice;host=127.0.0.1;charset=utf8', 3 'root', ''); 4 5 $statement = $db->prepare('INSERT INTO memos SET memo=?, created_at=NOW()'); 6 $statement->bindParam(1, $_POST['memo']); 7 8 echo "message OK"; 9 10} catch(PDOException $e) { 11 echo 'DB接続エラー:' . $e->getMessage(); 12} 13
試したこと
上記ソースコードの
php
1$statement->bindParam(1, $_POST['memo']);
の部分を
php
1$statement->execute(array($_POST['memo']));
に書き換えると、ブラウザ上に"message OK"が出力された上でデータベースにも正常にフォームからの情報が保存できています。
bindParam等の記述に誤りはないと思いますし、echoメソッドは正常に動作しているのになぜデータベースに情報が保存できていないのか原因が分かりません。
補足情報(FW/ツールのバージョンなど)
エディタはVScode
mysqlの操作にはSequel Proを使用しています。
また、サーバーの立ち上げはターミナル上で
php -S localhost:8000
と記述することでビルトインサーバーを立ち上げています。
プログラミングに関しては初心者なので、至らない部分もあるかとは思いますがご回答のほどよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/09 07:09
2020/09/09 07:30