我有数据库连接问题。
好吧,我在初始化 PDO 连接的地方包含 db.php 文件,然后我检查是否设置了 $err 变量,如果没有,我创建一个新对象并尝试使用一种为我构建链接 ID 的方法。但问题是——这个类中的方法根本看不到 $pdo 对象。
索引.php
require_once 'db.php';
if (!isset($err)) {
$linkBuilder = new LinkBuilder();
$link = $linkBuilder->buildLink();
// ...
}
LinkBuilder.class.php
<?php
class LinkBuilder {
private $newLink;
private function linkInUse($link) {
try {
$stmt = $pdo->prepare('SELECT * FROM table WHERE link = :link');
$stmt->bindValue(':link', $link);
$stmt->execute();
if ($stmt->rowCount() > 0) return true;
} catch (PDOException $e) {
$err = Constants::DB_ERR;
}
}
public function buildLink() : string {
do {
$this->newLink = rand(100, 999) . chr(rand(65, 90)) . chr(rand(65, 90)) . chr(rand(65, 90));
} while ($this->linkInUse($this->newLink));
return $this->newLink;
}
}
而且,是否有任何更改可以使此代码更好?
白板的微信