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

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

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

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

XAMPP

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

解決済

PHP: INSERT INTO の行でエラーが出ていて解決できません。

y-sasaki
y-sasaki

総合スコア0

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

XAMPP

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

3回答

-5評価

1クリップ

952閲覧

投稿2021/01/03 18:52

34行目の  INSERT INTO の部分でエラーメッセージがあるのですが、分かりません。
他の箇所がおかしいのかもです。

エラーメッセージ
Parse error: syntax error, unexpected variable "$sql" in C:\xampp\htdocs\php\chat2\index.php on line 34

ソースは

PHP

<html lang="ja"> <head> <meta charset="utf-8"> <title>入力フォーム</title> </head> <body> <form method="POST" action=""> 名前 <input name="name" type="text"> 出身 <input name="text" type="text"> <input type="submit" value="送信"> </form> <?php $dsn = 'mysql:dbname=chatlog;host=localhost'; $user = 'testuser'; $password = 'yasushi'; try { $dbh = new PDO($dsn, $user, $password); echo "接続成功\n"; } catch (PDOException $e) { echo "接続失敗: " . $e->getMessage() . "\n"; exit(); } $name = $_POST['name']; $log = $_POST['text'] // SQL作成 $sql = "INSERT INTO chatlog (id, name, log) VALUES (null, '$name', '$log')"; // SQL実行 $res = $dbh->query($sql); $data = "SELECT * from chatlog"; $stmt = $dbh->query($data); $result = $stmt->fetchAll(); $stmt = $dbh->query($data); $log_result = $stmt->fetchAll(); $i = 0; while($i <30){ $i++; echo('名前:'); print_r ($result[$i][1]); echo('会話:'); print_r($log_result[$i][2]); echo '<br>'; } $dbh = null; ?> </body> </html>

34行目は
$sql = "INSERT INTO chatlog (id, name, log) VALUES (null, '$name', '$log')"; の部分です。

よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806
m.ts10806

2021/01/03 21:14

前の質問の回答読んでください。 だから起きてます。
m.ts10806
m.ts10806

2021/01/03 21:22 編集

というか、まだ、自身がやりたいことをできるほどの技量に達してないように見受けられます。 コードは書いたとおりにしか動かないので、基礎を飛ばしていてはいつまでもまともに動くようにはならないので、インジェクション対策の前に、文字列操作、配列操作あたりをきっちりおさえておく必要があります。 エラーを読む、デバッグをする、PHPマニュアルを活用する この3点なしにはずっと初心者を抜け出せません
y-sasaki
y-sasaki

2021/01/04 01:59

叩かれるのは、承知で書きますが、 そのようなお説教はいりません。 ここで、求めてるのは、質問に対する答えだけです。 始めたばかりなので、技量がないのは承知です。 ただ、アウトプットの方が勉強になると思い、作ってるだけです。 目標物は、あまり明確に決めてはいません。小さなプログラムで始めて大きく育てています。最初は「入力フォームから得られたデータを表示する」というだけものでした。それにDBなどを追加していき現在に至ります。確実に動くものを作っていってるだけです。つまづいたら、ここで、質問しています。 では、失礼します。
m.ts10806
m.ts10806

2021/01/04 02:52 編集

いずれにしても折角ついた回答を読まないままというのは如何なものでしょうか。指摘しているのはそこ。ご自身の回答についた指摘にも反応なし。 説教ではなく、知見を得る気はないのか?と問うています。 具体的に言うと、私が例えば5年かけて習得したことを数カ月で習得できるチャンスを自ら捨てているのではという話です。 きちんと回答を吸収できていれば起きていなかった問題が、自分だけのやり方で進めてしまったために出てしまい、ご自身が質問して回答を得る時間含めて同じ指摘を別の人がするという無駄が発生してしまっている事態に何も感じませんか? スタンスにとやかく言うわけではないですが、己の道だけを貫きたいなら他者を巻き込むのは迷惑行為に近しいということを認識してもらいたいわけです。 同じようなやり方続けていたらアドバイスをする人も減るし、あなたがやりたいことも進まないし、デメリットしかないと思います。
削除済ユーザー
削除済ユーザー

2021/01/04 04:31

無償で貢献している人たちの努力を踏みにじるような考え方なら、このサイトの利用をしないでいただきたいと個人的にお願い申し上げます。回答する人たちもロボットじゃなく感情を持つ人間ですよ。単にスコアを稼ぎたいだけじゃない、そこを越えた考えを持つから回答をつけるのをやってるのであって、反省も学習も向上心もない質問者につきあうほど暇じゃありませんよ。
phper.k
phper.k

2021/01/04 04:34

「ここで、求めてるのは、質問に対する答えだけです。」 ↑これはないわ〜
削除済ユーザー
削除済ユーザー

2021/01/04 04:35

ちなみに今回のエラーなんて、例えばVScodeでPHP開発環境を立ち上げさえすれば、簡単に見つかるようなものだし、3v4l https://3v4l.org/ ってサイトにかけてもすぐ見つかる単純なものなの。自力で解決させる努力すらしないで、「つまづいたら、ここで、質問しています」ではそのうち誰も付き合ってくれなくなるよ。
y-sasaki
y-sasaki

2021/01/04 08:27

回答もコメントも、ちゃんと読んでますよ。 とりあえず、動くものを作りたかったので、 セキュリティ的なところ?? その他細かい点は 後回しにしてただけです。 あとは、皆さんのおっしゃる通りだと思います。 争っても、無駄なので、 この辺で失礼いたします。
m.ts10806
m.ts10806

2021/01/04 09:56

争うつもりはないですよ。 ただ、DBに入りたいならPHPの構文エラー程度で他人を頼らないようになってからにしてください。 作りたいものだけを追い求めても、作りたいものは出来上がりません。 王道はないので基礎もできてない状態で外部システムであるDBを扱うのは早すぎます。
tanat
tanat

2021/01/04 10:34

>叩かれるのは、承知で書きますが、 そのようなお説教はいりません。 ここで、求めてるのは、質問に対する答えだけです。 始めたばかりなので、技量がないのは承知です。 ただ、アウトプットの方が勉強になると思い、作ってるだけです。 次回以降はこの旨を質問の最初に明記して頂けると認識のすれ違いが無くなって良いかと思いますよ。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

XAMPP

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