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

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

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

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

Q&A

解決済

2回答

3195閲覧

Parse error: syntax error, unexpected 'catch' エラーで治らない

hakusa.ppl

総合スコア21

PHP

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

0グッド

0クリップ

投稿2019/07/20 00:47

コードが完成したのですが、エラーが出てます
勉強を始めたばかりで動かない理由をしらべても何をいっているのか分かりません
どこがおかしいのでしょうか?
拙い質問ですが何卒宜しくお願い致します。

エラー

Parse error: syntax error, unexpected 'catch'

コード

php

1<?php 2 define('DB_HOST', 'localhost'); //ここでmysqlのlocalhostをする 3 define('DB_USER', 'root');//どのユーザーか 4 define('DB_PASSWORD', '******');//パスワード 5 define('DB_NAME', '');//どのデータベースの名前か 6 7 // エラー表示設定:通知系以外全て表示 8 error_reporting(E_ALL & ~E_NOTICE); 9 10 try { 11 $dbh = new PDO('mysql:'.DB_NAME.';'.DB_HOST, DB_USER, DB_PASSWORD); //$dbhという変数にmysqlのログイン情報を入れる。 12 //print('接続しました。'); 13 14 catch(PDOException $e){ 15 print('ERROR:'.$e->getMessage()); // 上の処理が発生した時にこのメッセージを表示させる 16 17 18 19 $stmt = $dbh->query("select curtime();"); //変数$dbhにqueryで中身を応答させている。 20 21 22 $result = $stmt->fetch();  //$resultでSQLを実行した「結果データ」を取得する 23 print($result[0]); //$resultをweb画面上に表示させる。 24 exit; 25 26 } 27 28 ?> 29

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

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

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

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

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

guest

回答2

0

勉強することが目的なら、おすすめの対処法はたとえエラーの英語が読めなくても翻訳サイト使ってエラーを読んでみる事。

Parse error:

phpとして解釈できない = 書き方が間違っている

syntax error

構文エラー = 書き方が間違っている

unexpected 'catch'

予期せぬ'catch' = catchのところおかしくない?というアピール


質問文には書いてないようだけど、実際のエラーログには何行目でエラーか出ているのでそれもあわせて確認すること

on line xxx

何行目あたりでエラーか(絶対に合ってるとは限らないが)

投稿2019/07/20 01:02

hentaiman

総合スコア6415

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

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

hakusa.ppl

2019/07/20 01:07

なるほど 大変参考になります。 ご丁寧にありがとうございます
hakusa.ppl

2019/07/20 01:08

}catch(PDOException $e){ ここがおかしいと出たのですが
hentaiman

2019/07/20 01:10

あとは行数を減らして確認するのが王道です try~catchの中身だけを空っぽ(それかコメントアウト)にしてもエラーになるか? なればtry~catchの書き方書き方がおかしいし、ならなければtry~catchの中身がおかしい 後者なら次はtryの中身を一行ずつ追加して動作確認すること、その次はcatchの中身を一行ずつ追加して動作確認すること 必ずエラーが見つかります
hentaiman

2019/07/20 01:14

あとは何でも良いからエディター使いましょう。質問文に書かれているソースのように全角スペース入っていてもそれに気付きにくいエディターだと、今回のようにエラーになりやすい。
hakusa.ppl

2019/07/20 01:19

本当にやさしく答えていただきありがとうございます
guest

0

ベストアンサー

catch の前に } を追加しましょう。

投稿2019/07/20 00:49

takasima20

総合スコア7458

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

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

hakusa.ppl

2019/07/20 00:57

ご回答ありがとうございます 今度はエラーのParse error: syntax error, unexpected '}'が出てます。
takasima20

2019/07/20 01:12

$dbh = ~ の行のコメント前に全角スペースがあるので消しましょう。
hakusa.ppl

2019/07/20 01:27

ありがとうござます。 半角スペースを消したら治りました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問