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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

2回答

1399閲覧

【PHP】MySQLへのクエリが失敗する原因が不明

narururu

総合スコア172

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

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

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2020/06/15 15:39

編集2020/06/15 16:12

解決したい課題

PHPのコードを実行し、想定通りの結果が得られること。

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php $DBHOST = "localhost"; $DBUSER = "root"; $DBPWD = "xxxxx"; $DBNAME = "xxxxx"; $conn = new mysqli($DBHOST, $DBUSER, $DBPWD, $DBNAME); if ($conn->connect_error){ die("接続失敗:".$conn->connect_error); } $statement = "INSERT INTO name VALUES('$_POST[first_name]','$_POST[last_name]')"; $conn->query($statement); $conn->close(); ?> </body> </html>

想定結果

コードを実行するとブラウザで以下のフォームが表示される。
イメージ説明

現状

MySQLでは以下の通りテーブルを作成しております。
イメージ説明

PHPコードを実行するとブラウザでは以下のエラーが表示されます。

Notice: Undefined index: first_name in C:\xampp2\htdocs\index2.php on line 21 Notice: Undefined index: last_name in C:\xampp2\htdocs\index2.php on line 21

海外の教材を用いて学習を進めています。
特に不備は見当たらないため、原因が分からず困っております(´・・`)
そもそも、上記のコードでフォームが作成されるのか?と疑問に思いながら進めていますが、教材通りに進めていることは確認済みです。(「接続失敗」などのテキスト情報は一部日本語に変換してます)
どなたかアドバイスいただけますと幸いです!
よろしくお願いいたします(>
<)

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

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

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

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

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

javahack

2020/06/15 16:26

ツッコミどころがありすぎますが、まずは「クライアントから送られてきたデータをそのままセットする」SQLを記載している教材は捨てましょう。
narururu

2020/06/15 16:34 編集

ご回答ありがとうございます!javahackさん☺ 「クライアント~セットする」←セキュリティ的に大問題ということでしょうか('_')? 折角購入した教材なので、も少し進めてみよかと思てるのですが(´・_・`) 因みに、問題は解決できました。
javahack

2020/06/15 16:49

kei344さんの回答のリンクにもありますが、「プリペアドステートメント」を使うようにしてください。 本当はPDOに乗り換えた方が良いと思いますが、mysqliにも用意されているはずです。
narururu

2020/06/15 17:02

アドバイスありがとうございます。 はい!そします。
guest

回答2

0

"INSERT INTO name VALUES('$_POST[first_name]','$_POST[last_name]')" が、もし、教材に書いてあるとおりなのだとしたら、別の教材を探しましょう。(PHPに良い教材があるかどうかは不明)

そもそも$_POSTの受け取りをまず勉強しましょう。

【$_GET, $_POSTなどを受け取る際の処理 - Qiita】
https://qiita.com/mpyw/items/2f9955db1c02eeef43ea

【PHPでデータベースに接続するときのまとめ - Qiita】
https://qiita.com/mpyw/items/b00b72c5c95aac573b71

投稿2020/06/15 16:33

kei344

総合スコア69606

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

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

narururu

2020/06/15 16:39 編集

いつもアドバイスありがとうございます!kei344さん☺ あらま、コードがシンプルで分かりやすいなあと思て購入した教材なのですが、何がいけないのでしょう。。。 オークションサイトの仕組みを知りたいなと思て、その実装方法について説明されている教材でしたので、一旦進めようかと思てるのですが、セキュリティ的な問題であれば、実装後、FirestoreもしくはAWSにデータベースを移行しようと考えてます☺
narururu

2020/06/15 16:44

参考URLありがとうございます! やはりセキュリティ的な問題ですね。 なんとなく、そんな気はしてました。 しかし、オークションサイトを構築する教材でセキュリティ的な配慮がないとは、、確かにこの教材で学ぶのは辞めた方がいいのかもしれないですね。
javahack

2020/06/15 17:11

変な教材を使うよりも、リンク先の記事で学習して基礎を固めた方が良いと思います。
guest

0

自己解決

index.htmlでフォームを記述しました。
そのフォームに名前を記入し送信すると、
xamppのデータベーステーブルに情報が格納されました。
恐らく、これを伝えたかったのかなと解釈しました。
教材でも、最終的な結果としてはテーブルに格納されていることでしたので目的は達成できました。
失礼しました。

投稿2020/06/15 16:24

narururu

総合スコア172

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問