アプリ版:「スタンプのみでお礼する」機能のリリースについて

Parse error: syntax error, unexpected 'catch' (T_CATCH) in /****/****/***/list.php on line 21 というエラーが出るのですが21行目のどこを直せば良いのでしょうか


<?php
$user = "";
$pass = "";
try {
$dbh = new PDO('mysql:host=;dbname=;charset=utf8', $user, $pass);
$sql = "SELECT * FROM recipes";
$stmt = $dbh->query($sql);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<table>\n";
echo "<tr>\n";
echo "<th>料理名</th><th>予算</th><th>難易度</th>\n";
echo "</tr>\n";
foreach ($result as $row) {
echo "<tr>\n";
echo "<td>" . $row['recipe_name'] . "</td>\n";
echo "<td>" . $row['budget'] . "</td>\n";
echo "<td>" . $row['difficulty'] . "</td>\n";
echo "</tr>\n";
echo "</table>\n";
$dbh = null;
} catch (Excepstion $e) {
echo "エラー発生: " . htmlspecialchars($e->getMassage(), ENT_QUOTES, 'UTF-8') . "<br>";
die();
}
?>

A 回答 (2件)

とりあえずスペルを直してみるとか.

    • good
    • 1

いくつか問題点があります



まずPDOのエラーを拾いたいなら
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
というオプション設定が必要になります

そしてcatchの仕方は
}catch(PDOException $e){
です。

さて、ご提示のソースの問題点はそこではなく
foreachのループが閉じていないことです。

echo "</tr>\n";
}
echo "</table>\n";

としないと構造としておかしいです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!