【问题标题】:PDO Connection: Call to a member function prepare() on null [duplicate]PDO 连接:在 null 上调用成员函数 prepare() [重复]
【发布时间】:2016-12-15 00:11:59
【问题描述】:

您好,我有一个关于 PDO 连接的问题。我的 conn.php 是

<?php
define('host', 'localhost');
define('host_user', 'root');
define('host_pass', '');
define('host_db', 'testdb');
class Database {
public $conn;
public function Connect() {
try {
$conn = new PDO("mysql:host=" . host . ";dbname=" . host_db, host_user, host_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection error:" . $e->getMessage();
}
}
}
?>

当我使用它时

$dbClass = new Database();
$stmt = $dbClass::Connect()->prepare("SELECT * FROM user_posts");

它返回以下错误:

在 null 上调用成员函数 prepare()

为什么会这样?

【问题讨论】:

    标签: php database class pdo


    【解决方案1】:

    您会收到错误,因为 prepare()PDO 的函数,但由于 Connect() 不返回任何内容,因此您调用 prepare() 什么都没有。

    您应该修改Connect() 以便它返回 PDO 对象。在函数末尾(或Try 块的末尾)添加:

    return $conn;
    

    【讨论】:

    • 谢谢它的工作!!!
    • @user3227899 不客气:-) 如果它帮助您解决问题,请记住选择我的答案。
    • 选择?什么意思?
    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2016-09-11
    • 1970-01-01
    • 2018-01-12
    相关资源
    最近更新 更多