【发布时间】:2023-03-29 15:58:01
【问题描述】:
我有两个 php 文件,一个是用于 PDO 连接的文件,一个是在此连接上提交准备好的语句的文件:
PDO 连接:
class Connection {
protected $user = "ni873420_2sql1";
protected $pass = "#";
public $pdo_log;
public function __construct() {
try {
$pdo_log = new PDO('mysql:host=localhost;dbname=ni873420_2sql1',
$this->user, $this->pass);
}
catch (Exception $e) {
die($e);
}
}
}
这是我创建准备好的语句的函数:
public static function getInfobyEmailUsername($argemailusername) {
$get_info_query = "SELECT * FROM user WHERE email = ? OR username = ?";
$conn = new Connection();
$getinfostmt = $conn->pdo_log->prepare($get_info_query);
$getinfostmt->execute(array($argemailusername, $argemailusername));
$userinfo = $getinfostmt->fetch(PDO::FETCH_ASSOC);
if (!empty ($userinfo)) {
return $userinfo;
} else {
return false;
}
}
但我不断收到错误消息:
Fatal error: Call to a member function prepare() on null
我在任何地方都找不到解决方案,谁能帮我解决这个问题,或者至少发送一个链接让我可以找到解决方案?
谢谢!
【问题讨论】:
-
您永远不会将句柄分配给
$conn->pdo_log,而是将其作为局部变量留在构造函数中。