🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
HTML5

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

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

4982閲覧

エラーの解釈の仕方が分かりません。

noizi.

総合スコア27

HTML5

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

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/03/03 00:39

前提・実現したいこと

下記のプログラム(一部抜粋)を実行結果、エラーが出たのですが予期しないトークンとは何なのか分かりません。

ご教授よろしくお願いいたします。

発生している問題・エラーメッセージ

Parse error: syntax error, unexpected token "}" in C:\xampp\htdocs\customer\c_inq.php on line 45

該当のソースコード

<?php $dsn = 'mysql:dbname=example;host=localhost'; $user = 'root'; $password = 'shapshap'; try{ $dbh = new PDO($dsn, $user, $password); $sql = 'SELECT * FROM example'; $query = $dbh->query("$sql"); while ($row = $query->fetch(PDO::FETCH_ASSOC)) echo '<td>'.$row['C_nm'].'</td>'; echo '<td>'.$row['C_nam'].'</td>'; echo '<td>'.$row['C_phn'].'</td>'; echo '<td>'.$row['C_add'].'</td>'; '<form action="c_search_ans.php"> <td> <button type="submit">修正</button> </td> </form> <form action="c_inq_era.php"> <td> <button type="submit">削除</button> </td> </form>' } } catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } $dbh = null; ?>

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答4

0

ベストアンサー

while ($row = $query->fetch(PDO::FETCH_ASSOC)) の行で「{」忘れてる


一応、清書してみた。動くかどうかはしらん。
インデント量がデタラメだと、コードを追うのに疲れるだけなので、
インデント量含めて整形してくれるエディタを使うと便利よ。

php

1<?php 2 $dsn = 'mysql:dbname=example;host=localhost'; 3 $user = 'root'; 4 $password = 'shapshap'; 5 try{ 6 $dbh = new PDO($dsn, $user, $password); 7 $sql = 'SELECT * FROM example'; 8 $query = $dbh->query("$sql"); 9 while ($row = $query->fetch(PDO::FETCH_ASSOC)) { 10 echo '<td>'.$row['C_nm'].'</td>'; 11 echo '<td>'.$row['C_nam'].'</td>'; 12 echo '<td>'.$row['C_phn'].'</td>'; 13 echo '<td>'.$row['C_add'].'</td>'; 14 echo '<form action="c_search_ans.php"> 15 <td> 16 <button type="submit">修正</button> 17 </td> 18 </form> 19 <form action="c_inq_era.php"> 20 <td> 21 <button type="submit">削除</button> 22 </td> 23 </form>'; 24 } 25 } 26 catch (PDOException $e){ 27 print('Error:'.$e->getMessage()); 28 die(); 29 } 30 $dbh = null; 31

投稿2021/03/03 00:42

編集2021/03/03 00:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

noizi.

2021/03/03 01:22

回答ありがとうございます。 質問ですが、インデント量を整形してくれるエディタってあるんですか?
m.ts10806

2021/03/03 01:43

大抵のエディタでインデントをどうつけるかの設定ってあるのでは。 tab1つとかspace4つとかの設定。
noizi.

2021/03/03 06:13

ありがとうございます。 試してみます。
guest

0

45行目の}あたりにエラーがあります。
直前のechoの文末のセミコロンが抜けてます。

投稿2021/03/03 00:44

hiok

総合スコア595

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

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

0

PHP

1 </form>'

の末尾にセミコロンが足りません。
この場合、unexpexted tokenとはphpの文法に沿ってない文字列が突如現れてるよ
くという感じのエラーで、大抵はその行より前の部分に文法ミスがあります。

追記
whileの後の{も抜けていますね


文法エラーを人力で探すのは大変なので、IDEや高機能なエディタの補助機能を使うのが楽です。
PHP VSCode 設定とか、(有料ですが)phpStormあたりで検索してみて開発環境を整えることをお勧めします。

投稿2021/03/03 00:43

編集2021/03/03 01:22
tanat

総合スコア18727

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

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

0

予期しないトークンとは何なのか

そもそもこの場面における「トークン」の意味を理解するところからかと思います。様々な場面で使われるものなので。
Wikipediaの解説で私はしっくりきました。

プログラミング言語など(における広義の構文解析)で「トークン」と呼ばれるもの(「字句」の記事や字句解析#トークンを参照)は、ソースコード中の文字の並び中の、1個ないし複数個の文字から成る文字列で、キーワードや識別子や演算子やリテラルとして意味を成す最小単位となっているもの、である。

リンクになってる「字句解析」も参照してください。


今回の場合、PHPの構文解析において、構文に反する文字列が現れたという意味で「予期しない」と綴られているということになります。

Parse error: syntax error,

は「構文解析上のエラー」ということを教えてくれています。

例えば、( ではじまればいずれ ) が来るはずなのに来ないまま別の(や{が来てしまったとか、そういうことですね。

投稿2021/03/03 01:42

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問