Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend框架教程——连接到数据库的问题_Php_Mysql_Zend Framework_Database Connection_Zend Db - Fatal编程技术网

Php Zend框架教程——连接到数据库的问题

Php Zend框架教程——连接到数据库的问题,php,mysql,zend-framework,database-connection,zend-db,Php,Mysql,Zend Framework,Database Connection,Zend Db,对于一个相当具体的新手问题,我深表歉意——我不知道为什么我不能让它工作 我目前正在学习Zend Framework 1教程()。我对它做了一点修改,使其适合存储鸟类信息的数据库的需要,但主要使用教程作为指导 我的问题具体出现在guestbookMapper的第10行。我在代码中添加了大量html打印语句,以确定挂起的地方。这一行代码出现之前的print语句似乎导致了问题的解决,但后面的那一行却没有 My application.ini文件具有以下数据库连接信息: resources.db.ada

对于一个相当具体的新手问题,我深表歉意——我不知道为什么我不能让它工作

我目前正在学习Zend Framework 1教程()。我对它做了一点修改,使其适合存储鸟类信息的数据库的需要,但主要使用教程作为指导

我的问题具体出现在guestbookMapper的第10行。我在代码中添加了大量html打印语句,以确定挂起的地方。这一行代码出现之前的print语句似乎导致了问题的解决,但后面的那一行却没有

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

resources.db.adapter = "PDO_MYSQL"
resources.db.params.dbname = "BML"
resources.db.params.username = "BML"
resources.db.params.password = "<my password>"
resources.db.adapter=“PDO_MYSQL”
resources.db.params.dbname=“BML”
resources.db.params.username=“BML”
resources.db.params.password=“”
我没有指定主机,因为我不知道在这里输入什么值。我读到这没有必要,但我对此表示怀疑。请纠正我,如果这是一个无效的声明

在models目录中,我有Bird(相当于guestbook)和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';
}
class Application\u Model\u DbTable\u ClementsBirds扩展Zend\u Db\u Table\u Abstract{
打印“已到达数据库模型”

; 受保护的$_name='clements6_8'; 保护$_primary='sort6_8'; }
在第10行执行之前,我已经打印出$db_table的值,它的值是Application_Model_DbTable_ClementsBirds,我认为这是正确的


有人能告诉我他们认为问题在哪里以及如何解决吗?我想它一定是在我的数据库连接中工作不正常,但我已经按照教程进行了(并检查和重新检查了我的步骤),所以我不确定为什么这会是错误的。也就是说,我没有使用脚本创建数据库,因为我的数据库已经存在。非常感谢你的帮助

现在回答这个问题太晚了。但希望它能帮助别人

代码中有个错误。我不知道它在问题中的拼写错误或实际的错误

 protect $_primary = 'sort6_8';
上面的一行应该是

 protected $_primary = 'sort6_8';

如果您在本地服务器上托管项目,通常Mysql服务器是localhost。因此,只需将
resources.db.params.host=“localhost”
添加到您的application.ini中即可。否则,你的主人应该向你提供有关MySQL-DB的详细信息。我的服务器有点可笑,因为它实际上只是一台一直打开的计算机(不是我的设计选择)。我在遗留代码中找到了一个配置文件,该文件的数据库服务器的ip地址为130.15.96。以及其他数据库连接信息。将此值作为主机是否有意义?应用程序中的PHP文件是否与数据库位于同一服务器上?如果是,主机名应该是
localhost
。如果否,主机名应该是该服务器的IP地址。我已将主机名更改为本地主机。我从源代码处编译php,所以我回去在编译时添加了--with pdo mysql标志,认为这就是问题所在。不幸的是,它仍然不起作用。我的下一个想法是我的数据库所在的位置。zend framework文件和网站页面位于/导出/相对于根目录。相对于根,db位于/var/中。我已将db的路径更改为/var//BML。但它仍然不起作用。还有其他想法吗?我真的被卡住了:(