【问题标题】:Trying to connect to database尝试连接数据库
【发布时间】:2015-01-10 18:24:43
【问题描述】:

我正在从头开始重写一个项目,并想在此过程中尝试学习 MVC。在这种情况下,我选择了 Phalcon,并且仍在研究将教程转换为我自己的项目的基础知识。

我需要考虑两个“配置”设置。首先,我需要读取具有数据库凭据的配置文件(这可以正常工作)。

require_once('../fileconfig.php'); // Read config file
$init = new Phalcon\Config\Adapter\Php("../fileconfig.php"); //Convert it to array

但是一旦我有了它,我如何真正连接到数据库并将其添加到 $di-> (如果我理解正确,它实际上是全局类?最终,我想提取“select * from config" 到一个数组中,并将其用于应用程序配置。在这种情况下,var_dump($dbh) 返回“null”

//Connect to database
$di->set('db', function() use ($init) {
    $dbh = new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host" => $init->database->host,
        "username" => $init->database->username,
        "password" => $init->database->password,
        "dbname" => $init->database->dbname
    ]);
    return $dbh;
});
var_dump($dbh);  //returns null

如果我删除 $di-> 部分,该数组将返回我需要的数据,但它仍然无法帮助我弄清楚如何连接到数据库并使其对模型中的其他函数全局可用:

    $dbh = new \Phalcon\Db\Adapter\Pdo\Mysql([
        "host" => $init->database->host,
        "username" => $init->database->username,
        "password" => $init->database->password,
        "dbname" => $init->database->dbname
    ]);

返回:

object(Phalcon\Db\Adapter\Pdo\Mysql)[28]
  protected '_descriptor' => 
    array (size=4)
      'host' => string 'localhost' (length=9)
      'username' => string 'testuser' (length=8)
      'password' => string 'testpass' (length=8)
      'dbname' => string 'testdb' (length=6)

This question 似乎接近我的要求,但更多的是关于错误处理而不是实际连接,我在那里没有看到我的问题的答案。

【问题讨论】:

    标签: php phalcon


    【解决方案1】:

    要解析您的数据库,您需要解析您的 di.你可以用你声明的文件来解决它

    $di->getShared('db')
    

    但请注意,您不想这样做。您希望您的文件与其职责分开。

    可以在继承\Phalcon\Mvc\Controller 的类中使用

    $this->db->
    

    请参阅http://docs.phalconphp.com/en/latest/reference/di.html 以了解为什么要使用 DI,以及访问它的所有细微差别

    了解其他 phalcon 项目并了解一切如何协同工作确实很有帮助。请参考这里的源代码,看看项目是如何设置的:

    https://github.com/phalcon/invo

    https://github.com/phalcon/vokuro

    https://github.com/phalcon/forum

    这些是按复杂性排序的,所以先从 invo 开始,然后继续

    【讨论】:

    • 感谢您提供的示例。 Phalcon 网站上的教程很好,但您提供的示例帮助更大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 2014-06-09
    • 2016-06-16
    • 2011-06-08
    • 2023-01-11
    • 2015-09-03
    • 2015-01-07
    相关资源
    最近更新 更多