【发布时间】:2012-04-01 10:06:10
【问题描述】:
我对 PDO 和 PHP 的 OOP 还是很陌生,所以请注意 :) 基本上我正在尝试基于 PDO 创建一个连接对象,这样我就可以在整个站点中调用一个连接。
我需要一些准备好的语句,这些语句可以根据我使用下面尝试创建的相同 db 对象传递的 ID 来查找不同的结果。
如何创建和访问我在下面设置的 db 类,然后使用其中的函数来提取我需要的相关信息?任何示例都会很棒,因此我可以了解最佳实践等。
非常感谢。
class db {
private static $connection;
private function __construct(){}
private function __clone(){}
private static function connect($db_server="localhost", $db_user="user", $db_pass="password") {
if(!$this->connection){
try{
$this->connection = new PDO($db_server, $db_user, $db_pass);
} catch (PDOException $e) {
$this->connection = null;
die($e->getMessage());
}
}
return $this->connection;
}
}
$dbh = new db::connect();
$stmt = $dbh->prepare("SELECT * FROM questions where id = ?");
if($stmt->execute(array($_REQUEST['testid']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
【问题讨论】:
-
伪变量 $this 在静态方法和静态属性中不可用。你应该使用 self::$property。否则它会说属性 db::property not defined
-
@BubuDaba 儿子不要在问题中编辑不正确的代码,因为它会使其他问题变得无关紧要。如果您对 OP 有任何建议,请写下答案或评论
标签: php mysql oop pdo class-design