tetero
@tetero (tetero)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PHPを参考にしている動画の通りに動作をさせたい。

やりたいこと

参考にしている動画の通りに動作をさせたい。

発生している問題

  • 500エラーが出る。
  • 下記の部分を消せば、500エラーは消えてHTMLが表示されるが、受け取っている予定のデータは表示されない。

detail.phpのこの部分を消せば500エラーが消える↓

$dbh = dbConnect();

// var_dump($dbh);
$stmt = $dbh->prepare('select * from blog Where id = :id');
$stmt->bindValue(':id', (int)$id, PDO::PARAM_INT);

$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);



参考にしている動画

【PHP/MySQL入門】プレースホルダーでブログ詳細画面を表示しよう! #06


detail.phpの全コード↓

<?php 

$id = $_GET['id'];
// echo $id; 

function dbConnect(){
    $dsn = "mysql:dbname=blog;host=localhost;charset=utf8";
    $user = "table_h";
    $pass = "table";
    $option = [
        PDO::ATTR_ERRMODE, 
        PDO::ERRMODE_EXCEPTION, 
        PDO::ATTR_EMURATE_PREPARES => false,
    ];

    try{
        $dbh = new PDO($dsn, $user, $pass, $option);
    }catch(PDOException $e){
        echo '接続失敗'. "<br />". $e->getMessage();
        exit(); 
    };
    return $dbh;
}

$dbh = dbConnect();

// var_dump($dbh);
$stmt = $dbh->prepare('select * from blog Where id = :id');
$stmt->bindValue(':id', (int)$id, PDO::PARAM_INT);

$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);

?>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ブログ詳細</title>
</head>
<body>
    <h2>ブログ詳細</h2>
    <h3>タイトル:<?PHP echo $result['title'] ?></h3>
    <p>投稿日時:<?PHP echo $result['post_at'] ?></p>
    <p>カテゴリ:<?PHP echo $result['category'] ?></p>
    <hr>
    <p>本文:<?PHP echo $result['content'] ?></p>
</body>
</html>

具体的な正解コードが分かる方、よろしくお願い致します!

0

1Answer

接続時のoptionsがお使いの開発環境と合っていないのではないでしょうか。
nullで実行してみて動作するようなら、ATTR_EMURATE_PREPARES => falseあたりが怪しい気がします

0Like

Your answer might help someone💌