5

いくつかのエラーが発生し、私の人生ではどこに落ちているのかわかりません。以下は関数ファイルです

<?php
include('config.php');

function getAllPosts()
{
    try {
        $dbh = new PDO(DB_HOST, DB_USER, DB_PASS);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }

    $stmt = $dbh->prepare('SELECT id, title, content FROM posts ORDER BY created_at DESC');
    $stmt->execute();
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
    return $results;
}

function getSinglePost($id)
{
    try {
        $dbh = new PDO(DB_HOST, DB_USER, DB_PASS);
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
    $stmt = $dbh->prepare('SELECT title, content FROM posts WHERE id = ?');
    $bindings = array($id);
    $stmt->execute($bindings);
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    return $result;
}

?>

また、エラーを生成するために実行しているページを含める必要があると考えました

<?php include('system/functions.php'); ?>
<html>
<head>
<title>Create A New Post | My First Blog</title>

<link rel="stylesheet" type="text/css" href="style.css">

</head>

<body>
<div id="form">
<?php if (isset($_GET['id'])){ ?>

<h2>Single Post:</h2>

<?php $post = getSinglePost($_GET['id']); ?>
<?php print_r($post); ?>

<?php } ?>
<fieldset>
</fieldset>
</div>

</body>
</html>

これらは完全なエラーです。

注意: 未定義の定数 DB_HOST の使用 - C:\xampp\htdocs\blog\system\functions.php の 31 行目で「DB_HOST」を想定

注意: 未定義の定数 DB_USER の使用 - C:\xampp\htdocs\blog\system\functions.php の 31 行目で「DB_USER」を想定

注意: 未定義の定数 DB_PASS の使用 - C:\xampp\htdocs\blog\system\functions.php の 31 行目の無効なデータ ソース名で「DB_PASS」と見なされます 注意: 未定義の変数: C:\xampp\htdocs\blog\ の dbh 37 行目の system\functions.php

致命的なエラー: 37 行目の C:\xampp\htdocs\blog\system\functions.php の非オブジェクトに対するメンバー関数 prepare() の呼び出し

構成ファイルも含める必要があります

<?php
define('DB_HOST','mysql:host=localhost;dbname=blog');
define('DB_USER','root');
define('DB_PASS','');
?>
4

3 に答える 3

4

に使用している定数でHost、まだ定義されていません。に何か問題がある可能性があります。UserPasswordconfig.php

于 2013-01-25T13:43:32.097 に答える
3

つまり、現在のコンテキストではDB_HOST定義されていないか、アクセスできません。DB_HOST

これらの変数を、スクリプトではなく最初に配置してみてくださいinclude('config.php');

define('DB_HOST','mysql:host=localhost;dbname=blog');
define('DB_USER','root');
define('DB_PASS','');
于 2013-01-25T13:51:44.957 に答える