2014-03-02 62 views
0

对于相当具体的新手问题的道歉 - 在我的智慧的结尾,为什么我不能得到它的工作。Zend框架教程 - 连接到数据库的问题

我目前正在通过Zend Framework 1 Tutorial(http://framework.zend.com/manual/1.12/en/learning.quickstart.create-model.html)。为了使它适合存储鸟类信息的数据库的需求,我做了一些修改,但是非常多地使用本教程作为指导。

我的问题特别出现在guestbookMapper的第10行。我在我的代码中添加了大量的html打印语句,以确定事物被挂起的位置。这条线似乎是事情分崩离析的地方,因为在该行代码出现之前的打印语句,而不是后面的打印语句。

我的application.ini文件具有以下数据库连接信息:

resources.db.adapter = "PDO_MYSQL" 
resources.db.params.dbname = "BML" 
resources.db.params.username = "BML" 
resources.db.params.password = "<my password>" 

我还没有指定的主机,因为我不知道该怎么把价值在这里。我读到这不是必要的,但我很怀疑。如果这是无效声明,请纠正我。

在Models目录中,我有我的Bird(等同于留言簿)和birdMapper(等同于guestbookMapper)以及DbTable目录。在这个目录里面是我的ClementsBirds.php,它应该对应我的数据库表。我这里面的代码如下所示:

class Application_Model_DbTable_ClementsBirds extends Zend_Db_Table_Abstract { 
    print '<p> reached the database model </p>'; 
    protected $_name = 'clements6_8'; 
    protect $_primary = 'sort6_8'; 
} 

我打印出来的$ db_table值前行10个执行,其价值是Application_Model_DbTable_ClementsBirds我相信这是正确的。

难道有人请告诉我他们认为问题出在哪里以及如何解决?我认为它必须在我的数据库连接无法正常工作,但我已经按照教程(并检查并重新检查了我的步骤),所以我不知道为什么这是不正确的。也就是说,我没有使用脚本创建数据库,因为我的数据库已经存在。非常感激你的帮助!

+0

如果你是在本地服务器上托管你的项目,normaly使用mysql-服务器为localhost。所以,只需在您的application.ini文件中添加'resources.db.params.host =“localhost”'。否则,您的主机提供者会向您提供有关MySQL-DB的详细信息。 – mdthh

+0

我的服务器有点有趣,因为它实际上只是一台始终打开的计算机(不是我的设计选择)。我在遗留代码中发现一个配置文件,其中的数据库服务器的IP地址为130.15.96。 以及其他数据库连接信息。将此值作为主机是否合理? – Anne

+0

您的应用程序中的PHP文件是否与数据库位于同一台服务器上?如果是,主机名应该是'localhost'。如果否,主机名应该是该服务器的IP地址。 –

回答

0

为时已晚回答这个问题。但希望它有助于某人。

代码有错误。我不知道在问题或实际错误中的错字。

protect $_primary = 'sort6_8'; 

,上面一行是

protected $_primary = 'sort6_8';