在我自己的 class 上使用PDO连接 - php

我不能使用自己的pdo_connection类中的PDO类方法,无论是否使用extends PDO,它都无法正常工作。

Class pdo_connection { 
//connection create 
    private $dbhost = "127.0.0.1"; 
    private $dbname = "db"; 
    private $dbuser = "user"; 
    private $dbpass = "pass"; 
    public function __construct() { 
        return $db = new PDO('mysql:host=' . $this->dbhost . ';dbname=' . $this->dbname, $this->dbuser, $this->dbpass); 
    } 
}

然后,当我创建对象时:

require("api/pdo.connection.class.php"); 
$db = new pdo_connection(); 
$db->exec("SET NAMES utf8");  

我不能使用exec,因为它不是pdo_connection类的方法,但是我想使用在pdo_connection类中创建的PDO的方法。

参考方案

如果您希望能够像这样使用pdo_connection,则必须扩展PDO。

例:

class db extends PDO {

然后,在该类中的__construct中,使用parent::__construct

parent::__construct('mysql:host=' . $this->dbhost . ';dbname=' . $this->dbname, $this->dbuser, $this->dbpass);

这是我使用该方法制作的类:[link]

用法:

include_once 'db.php';
$db = new db('user');
// Do stuff with $db

PHP:为什么不能扩展多个类? - php

当我想扩展两个父类时遇到了一种情况,但是php不允许这样做。为什么我不能extend多于一个班级,却可以implement多于一个interface。扩展许多类怎么了?在我看来,直到我解析错误之前,这似乎是一件很明显的事情。这是不好的做法吗?如果是这样,有哪些替代方案?可以使用其他语言吗? 参考方案 为什么在某些/大多数编程语言中禁止多重继承与钻石问题htt…

PHP PDO SQLite连接 - php

我创建了到数据库的连接,但是我不知道为什么它总是创建一个新的空的database.sql文件。当我重命名数据库文件时,他总是创建一个新文件,而不是给我一个错误。这是我的代码 try { $db = new PDO("sqlite:".__DIR__."/database.sql"); $db->setAttrib…

PDO PHP SQLite3数据库连接常规错误14 - php

我有2个sqlite3.x数据库(来自iPhone),一个来自游戏应用程序,另一个是通讯录。我在php conf中记录日志并显示错误“ on”。使用PHP / PDO,我可以显示游戏数据库中的字段和值,包括我在结果页中捕获的图像斑点,并使用“ img src ='data:...”进行渲染。我在其他字段上使用htmlentities捕获plist二进制blo…

PHP全局变量 - php

我有一个全局变量$ config,现在我有一个类,我想使用config中的值作为函数f(var = $ config ['val']){}这样的类方法的默认参数? 参考方案 这项作业会工作吗?不,不会。在函数定义中无法自动执行此操作。您将必须定义一个空的默认值:function f($var = null) { .... } 然后使用方法中的配置数组中的值填…

运行Symfony - php

我正在尝试在我的网站上运行symfony的副本,但是PHP Fatal error: Class 'BaseSettings' not found in /home/firefly/web/firefly.com/public/htdocs/sandbox/fireflyproject/project/lib/model/doctrine…