得到一些错误而且在我的生活中无法看到我跌倒的地方。以下是函数文件
<?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 - 在第31行的C:\ xampp \ htdocs \ blog \ system \ functions.php中假设为“DB_HOST”
注意:使用未定义的常量DB_USER - 在第31行的C:\ xampp \ htdocs \ blog \ system \ functions.php中假定为“DB_USER”
注意:使用未定义的常量DB_PASS - 在第31行的C:\ xampp \ htdocs \ blog \ system \ functions.php中假定为“DB_PASS” 无效的数据源名称 注意:未定义的变量:第37行的C:\ xampp \ htdocs \ blog \ system \ functions.php中的dbh
致命错误:在第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','');
?>
答案 0 :(得分:2)
您用于Host,User和Passwort的常量尚未定义。所以你的config.php可能有问题
答案 1 :(得分:2)
表示未定义DB_HOST
或在当前上下文中无法访问DB_HOST
。
尝试在开头的脚本中放置这些变量而不是include('config.php');
define('DB_HOST','mysql:host=localhost;dbname=blog');
define('DB_USER','root');
define('DB_PASS','');
答案 2 :(得分:0)
使用特定术语代替参考......
例如
$dbh = new PDO(DB_HOST, DB_USER, DB_PASS);
更改为...
$dbh = new PDO('localhost', 'root', '')
那会有用。