微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP中通过类共享MySQL连接?

我想与保留查询PHP中的其他类共享MysqL连接.
因此MysqL.PHP包含:

    <?PHP
$user = 'username';
$passowrd = 'password';
$conn = new PDO('MysqL:host=ip;dbname=dbname;port=3306',$user,$passowrd);
?>

我称为MyLibrary.PHPPHP文件包含:

    <?PHP
include 'DB.PHP';

class Manager {

    function jsonQuery() {

        $response = array ();


        $st = $conn->query ( "query");

        $response ["results"] = array ();

        foreach ( $st->fetchAll () as $row ) {

            //my stuff with the query
        }

        $response ["success"] = 1;

        echo json_encode ( $response );
    }

}

$object = new Manager();

$object->jsonQuery();

?>

那我该怎么办?

解决方法:

它称为dependency injection,易于实现.您在实例化参数时将其直接传递到类中.这样,您就可以实现它一次以上,并在代码库中共享该实例

class Manager {
    /** @var \PDO */
    protected $pdo;

    public function __construct(\PDO $pdo) {
        $this->pdo = $pdo;
    }

    public function jsonQuery() {
        $response = array ();
        $st = $this->pdo->query("query");
        $response ["results"] = array();

        foreach ( $st->fetchAll() as $row ) {
            //my stuff with the query
        }

        $response ["success"] = 1;
        echo json_encode($response);
    }
}

$object = new Manager($conn);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐