致命错误:消息为“ SQLSTATE [42S02]”的未捕获的异常“ PDOException”:基表或视图未出现

时间:2018-09-07 01:44:36

标签: php database oop pdo ampps

“致命错误:消息为'SQLSTATE [42S02]的未捕获异常'PDOException':未找到基表或视图:1146 C:\ Program Files(x86)\ Ampps中的表'myblog.posts'不存在” \ www \ php.dev \ classes \ Database.php在第50行“

Fatal error

    <?php
class Database{
    private $host   = 'localhost';
    private $user   = 'root';
    private $pass   = '123456';
    private $dbname = 'myblog';

    private $dbh;
    private $error;
    private $stmt;

    public function __construct(){
        // Set DSN
        $dsn = 'mysql:host='. $this->host . ';dbname='. $this->dbname;
        // Set Options
        $options = array(
            PDO::ATTR_PERSISTENT        => true,
            PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION
        );
        // Create new PDO
        try {
            $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
        } catch(PDOEception $e){
            $this->error = $e->getMessage();
        }
    }
    public function query($query){
        $this->stmt = $this->dbh->prepare($query);
    }
    public function bind($param, $value, $type = null){
        if(is_null($type)){
            switch(true){
                case    is_int($value):
                            $type = PDO::PARAM_INT;
                            break;
                case is_bool($value):
                         $type = PDO::PARAM_BOOL;
                         break;
                case is_null($value):
                            $type = PDO::PARAM_NULL;
                            break;
                            default;
                            $type = PDO::PARAM_STR;
            }
        }
        $this->stmt->bindValue($param, $value, $type);
    }

    public function execute(){
        return $this->stmt->execute();
    }

    public function resultset(){
        $this->execute();
        return $this->stmt->fetchAll(PDO::FETCH_ASSOC);
    }

}

当我在浏览器中运行index.php时。出现致命错误。

<?php
require 'classes/Database.php';

$database = new Database;

$database->query('SELECT * FROM posts');
$rows = $database->resultset();
print_r($rows);
?>

0 个答案:

没有答案