您好,我有一个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()
为什么会这样呢?
由于prepare()
是的函数,因此会出现错误PDO
,但由于Connect()
未返回任何内容,因此您prepare()
什么都没有调用。
您应该对其进行修改,Connect()
以便它返回PDO对象。在函数末尾(或代码Try
块末尾)添加:
return $conn;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句