在zend framework中执行用于创建表和数据库的sql代码

在zend framework中执行用于创建表和数据库的sql代码,sql,zend-framework,Sql,Zend Framework,我编写了一个sql脚本,并在其中创建了一个表; 现在我需要知道,如何执行这个脚本?(使用哪些代码?) 我还有一个问题:在哪里?我必须在哪里写这些代码?(zend项目中的哪个文件夹?) 如果可能,请举例说明。谢谢在数据库中创建表 Zend框架不应该是创建表的框架,因此,我的建议是在其他环境中运行这些脚本。 最快的可能是自己的SQL shell,但是如果您使用的是MySQL,您可以使用另一个软件,例如MySQLWorkbench 创建表后,通过以下方式访问表: 介绍 当您使用Zend框架时,您使用的

我编写了一个sql脚本,并在其中创建了一个表; 现在我需要知道,如何执行这个脚本?(使用哪些代码?) 我还有一个问题:在哪里?我必须在哪里写这些代码?(zend项目中的哪个文件夹?) 如果可能,请举例说明。谢谢在数据库中创建表 Zend框架不应该是创建表的框架,因此,我的建议是在其他环境中运行这些脚本。 最快的可能是自己的SQL shell,但是如果您使用的是MySQL,您可以使用另一个软件,例如MySQLWorkbench

创建表后,通过以下方式访问表:

介绍 当您使用Zend框架时,您使用的是MVC模式。我建议你读一下那是什么:

如果您阅读了Wikipedia链接,您现在可能知道数据库的访问将由模型进行

因此,如果您遵循,您的应用程序文件夹下将有一个models文件夹。在这里,您应该实现访问数据库的类

但是。。。您现在知道在哪里查找这些类,但您会问我:如何查找?如果您知道在哪里搜索,这很容易。ZF提供了一个名为的抽象类,该类包含所有方法,这些方法可以使您的生活更轻松地讨论与数据库表的交互。这是类应该实现的类

例子 假设您的网站中有一个页面,您希望在其中向用户显示本地商店的产品列表。您的数据库中有一个名为“products”的表,其中包含所有有用的信息,如美国名称、价格和可用性

您将有一个控制器,其操作名为indexAction()或listAction()。此操作准备将数据发送到视图,如下所示:

class Store_ProductsController extends Zend_Controller_Action {
    public function indexAction(){
        //TODO: Get data from the DataBase into $products variable
        $this->view->products = $products;
    }
}
您的视图文件将显示该products变量并使用它执行sutff

但现在魔法来了,您将拥有一个类,可以访问数据库,正如我所说的,它将如下所示:

class Model_Store_Products extends Zend_Db_Table_Abstract{

    protected $_name = 'products';

    public function getAllProducts(){
        $select = $this->$select()
                       ->from(array('P'=>$this->_name), 
                              array('id', 'name', 'price', availability));
        $productsArray = $this->fetchAll($select);
        return $productsArray;
    }
}
和ta da,您已准备好控制器使用的一系列产品:

class Store_ProductsController extends Zend_Controller_Action {
    public function indexAction(){
        $model = new Model_Store_Products();
        $products = $model->getAllProducts();
        $this->view->products = $products;
    }
}
可以说,由于fetchAll是公共函数,我们的select基本上什么都不做,只设置我们想要的列(它甚至没有where子句),在这种情况下,直接从控制器调用fetchAll将更容易,而无需where,它将恢复整个表(所有列):

因此,我们在模型中的功能甚至不需要

这是如何使用Zend Framework访问数据库的基本信息。有关如何创建Zend_Db_Table_Select对象的更多信息,请参见


我希望这能有所帮助。

谢谢,但我的问题不是它;我的问题是:我喜欢用独立的脚本编写创建DB和表的代码,然后执行它们,所以在您看来,什么更好?我为它编写一个操作并运行它?或者你建议我另一种解决方案。Zend被认为不用于在数据库中创建表。因此,我真的建议您在另一个软件中运行这些脚本一次,也许只是MySQL shell?一旦它们被创建,您就可以按照我上面所说的方式访问它们。我将编辑答案以添加此信息。
class Store_ProductsController extends Zend_Controller_Action {
    public function indexAction(){
        $model = new Model_Store_Products();
        $products = $model->fetchAll();
        $this->view->products = $products;
    }
}