Ошибка в php коде, можете помочь

240
14 марта 2018, 07:17
>**Fatal error**: Uncaught Error: Call to a member function `select()` on 
`string` in C:\OSPanel\domains\phplog\index.php:12   
*Stack trace:*   
 #0 {main} thrown in C:\OSPanel\domains\phplog\index.php on line 12

Вот код index.php

<?php include 'config/config.php'; ?>
<?php include 'libraries/database.php'; ?>
<?php include 'includes/header.php'; ?>
<?php
//Create DB Object
$db = 'database';
//Create Query
$query = "SELECT * FROM posts";
//Run Query
$posts = $db->select($query);
?>
<?php if($posts) : ?>
<div class="blog-post">
<h2 class="blog-post-title">Another blog post</h2>
<p class="blog-post-meta">December 23, 2013 by <a href="#">Jacob</a></p>
<p>text.</p>
<a class="readmore" href="post.php?id=1">read more</a>
</div><!-- /.blog-post -->
<div class="blog-post">
<h2 class="blog-post-title">Another blog post</h2>
<p class="blog-post-meta">December 23, 2013 by <a href="#">Jacob</a></p>
<p>text.</p>
<a class="readmore" href="post.php?id=1">read more</a>
</div><!-- /.blog-post -->
<?php else : ?>
<p>Thete are no posts yet</p>
<?php endif; ?>
<?php include 'includes/footer.php'; ?>

Вот код database.php

<?php 
class database{
public $host = db_host;
public $username = db_username;
public $password = db_pass;
public $db_name = db_name;
public $link;
public $error;
/*
 * Class Constructor
 */
public function __construct(){
    //Call Connect Function
    $this->connect();
}
/*
 * Connector
 */
private function connect() {
    $this->link = new mysqli($this->host, $this->username, $this->password, 
$this->db_name);
    if(!$this->link) {
        $this->error = "Connection Failed: ".$this->link->connect_error;
        return false;
    }
}
/*
 * Select
 */
public function select($query) {
    $result = $this->link->query($query) or die($this->link-
>error.__LINE__);
    if($result->num_rows > 0){
        return $result;
    } else {
        return false;
    }
}
/*
 * Insert
 */
public function insert($query) {
    $insert_row = $this->link->query($query) or die($this->link-
>error.__LINE__);
    //Validate Insert
    if($insert_row) {
        header("Location: index.php?msq=".urlencode('Record insert'));
        exit();
    }
}
/*
 * Update
 */
public function update($query) {
    $update_row = $this->link->query($query) or die($this->link-
>error.__LINE__);
    //Validate update
    if($update_row) {
        header("Location: index.php?msq=".urlencode('Record update'));
    }
}
}
?>

И вот код подключения самой бд config.php

<?php
define('db_host', 'localhost');
define('db_user', 'root');
define('db_pass', '');
define('db_name', 'blog');
?>
Answer 1

Ошибка связана с тем, что вы вместо создания объекта присваиваете строку. Необходимо исправить index.php следующим образом:

<?php 
//убрал лишние php-теги
include 'config/config.php';
include 'libraries/database.php';
include 'includes/header.php';
//Create DB Object
$db = new database(); //здесь создаем объект класса database, как и сказано комментарием выше
//Create Query
$query = "SELECT * FROM posts";
//Run Query
$posts = $db->select($query);
?>
<?php if($posts) : ?>
<div class="blog-post">
<h2 class="blog-post-title">Another blog post</h2>
<p class="blog-post-meta">December 23, 2013 by <a href="#">Jacob</a></p>
<p>text.</p>
<a class="readmore" href="post.php?id=1">read more</a>
</div><!-- /.blog-post -->
<div class="blog-post">
<h2 class="blog-post-title">Another blog post</h2>
<p class="blog-post-meta">December 23, 2013 by <a href="#">Jacob</a></p>
<p>text.</p>
<a class="readmore" href="post.php?id=1">read more</a>
</div><!-- /.blog-post -->
<?php else : ?>
<p>Thete are no posts yet</p>
<?php endif; ?>
<?php include 'includes/footer.php'; ?>
READ ALSO
Получить список всех видео из YouTube

Получить список всех видео из YouTube

Пытался делать это простым file_get_contents(); список видео получаю, но получаю всего 30, остальные не получаю так как они подгружаются ajax-омПринял...

174
Вставка в плеер видео с другого сайта

Вставка в плеер видео с другого сайта

На некоторых сайтах можно увидеть как в плеер вставляют ссылки вида

187
миграция с модели в yii2

миграция с модели в yii2

ребят можно ли создать миграцию основываясь на models? если можно подскажите как?

174
Сложная, сложная EAV струкутра

Сложная, сложная EAV струкутра

Как говорят лучше просить и 5 минут побыть дураком, чем не спросить и быть дураком всю жизнь :)

198