If I try to run the following PHP code, I get a "Call to a member function query() on a non-object". Do you know why? I use the same code on another site (http://daveismyname.com/creating-a-blog-from-scratch-with-php-bp#.U6fdxPmSxmx), where it works just fine.
config.php
<?php
ob_start();
session_start();
//database credentials
$username = "demo";
$password = "demo";
$host = "localhost";
$dbname = "try";
try{
$db = new PDO('mysql:host=localhost;dbname=try', $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo "I'm sorry, I'm afraid i cant do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
$db = null;
}
//set timezone
date_default_timezone_set('Europe/London');
//load classes as needed
function __autoload($class) {
$class = strtolower($class);
//if call from within assets adjust the path
$classpath = 'classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}
//if call from within admin adjust the path
$classpath = '../classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}
//if call from within admin adjust the path
$classpath = '../../classes/class.'.$class . '.php';
if ( file_exists($classpath)) {
require_once $classpath;
}
}
$user = new User($db);
include('functions.php');
?>
index.php
<?php require('includes/config.php'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Blog</title>
<link rel="stylesheet" href="style/normalize.css">
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<div id="wrapper">
<h1>Blog</h1>
<hr />
<div id='main'>
<?php
try {
$pages = new Paginator('1','p');
$stmt = $db->query('SELECT postID FROM blog_posts_seo');
//pass number of records to
$pages->set_total($stmt->rowCount());
$stmt = $db->query('SELECT postID, postTitle, postSlug, postDesc, postDate FROM blog_posts_seo ORDER BY postID DESC '.$pages->get_limit());
while($row = $stmt->fetch()){
echo '<h1><a href="'.$row['postSlug'].'">'.$row['postTitle'].'</a></h1>';
echo '<p>Posted on '.date('jS M Y H:i:s', strtotime($row['postDate'])).' in ';
$stmt2 = $db->prepare('SELECT catTitle, catSlug FROM blog_cats, blog_post_cats WHERE blog_cats.catID = blog_post_cats.catID AND blog_post_cats.postID = :postID');
$stmt2->execute(array(':postID' => $row['postID']));
$catRow = $stmt2->fetchAll(PDO::FETCH_ASSOC);
$links = array();
foreach ($catRow as $cat)
{
$links[] = "<a href='c-".$cat['catSlug']."'>".$cat['catTitle']."</a>";
}
echo implode(", ", $links);
echo '</p>';
echo '<p>'.$row['postDesc'].'</p>';
echo '<p><a href="'.$row['postSlug'].'">Read More</a></p>';
}
echo $pages->page_links();
} catch(PDOException $e) {
echo $e->getMessage();
}
?>
</div>
<div id='sidebar'>
<?php require('sidebar.php'); ?>
</div>
<div id='clear'></div>
</div>
</body>
</html>