質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

770閲覧

データベースに反映されない件について

6heouP1HUKGRAJe

総合スコア1

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/05/09 10:12

PHPにてメモアプリを作成しています。php初心者の私にご教授願います。

input.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>練習</title> </head> <body> <form action="input_do.php" method="POST"> <textarea name="newText" cols="50" rows="15" placeholder="メモを入力して下さい"></textarea> <br> <input type="submit" value="登録する"> </form> </body> </html>

input_do.php

<?php $db = new PDO('mysql:dbname=new_db;host=127.0.0.1;charset=utf8','root', 'root'); $statement = $db->prepare('INSERT INTO memos SET memo=?, created_at =NOW()'); //前のページのformタグから送られてきたメモの内容を表示 $statement ->execute(array($_POST['newText'])); header('Location : view.php'); exit(); ?>

input.htmlにテキストを入力してもデータベースにデータが反映されません。
どなたかご教授願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

php

1$db = new PDO('mysql:dbname=new_db;host=127.0.0.1;charset=utf8','root', 'root');

mysqlの動作している条件に、この記述が合っているでしょうか。
(それを言い出すとmysqlは起動しているでしょうか、ってところも確認が必要になりますが。)
パソコン上に構築するとデフォルトのポート番号ではない別の番号を使うことがまれにあったりするので、
$dbの中身をvar_dump()などで、正しく取れていることを確認してください。

なお、mysqlにおいて文字エンコーディングに
utf8とutf8mb4がありますのでご参考まで。
MySQLのencodingをutf8からutf8mb4に変更して寿司ビール問題に対応する|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
の「MySQLのutf8の4バイト文字問題とは」の下りをどうぞ。

投稿2021/05/10 00:10

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

SQLインジェクション対策も含めて、bindValue関数を介した、

php

1$statement = $db->prepare('INSERT INTO memos SET memo=:bun, created_at =NOW()'); 2$db->bindValue(':bun', $_POST['newText']); 3$db->execute();

のような構文で記述してみてください。

投稿2021/05/09 13:15

編集2021/05/13 05:35
seastar3

総合スコア2287

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/13 04:49

%って必要ですか? $db->bindValue(':bun', $_POST['newText']); ではダメなのでしょうか。
seastar3

2021/05/13 05:33

済みません。%なしが正解です。回答も修正します。 %はSQLでのワイルドカード指定ですから、WHERE句でのバインドで用いる記号です。見本のプログラムをそのままあてはめて見落としてしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問