在zend framework中执行用于创建表和数据库的sql代码
我编写了一个sql脚本,并在其中创建了一个表; 现在我需要知道,如何执行这个脚本?(使用哪些代码?) 我还有一个问题:在哪里?我必须在哪里写这些代码?(zend项目中的哪个文件夹?) 如果可能,请举例说明。谢谢在数据库中创建表 Zend框架不应该是创建表的框架,因此,我的建议是在其他环境中运行这些脚本。 最快的可能是自己的SQL shell,但是如果您使用的是MySQL,您可以使用另一个软件,例如MySQLWorkbench 创建表后,通过以下方式访问表: 介绍 当您使用Zend框架时,您使用的是MVC模式。我建议你读一下那是什么: 如果您阅读了Wikipedia链接,您现在可能知道数据库的访问将由模型进行 因此,如果您遵循,您的应用程序文件夹下将有一个models文件夹。在这里,您应该实现访问数据库的类 但是。。。您现在知道在哪里查找这些类,但您会问我:如何查找?如果您知道在哪里搜索,这很容易。ZF提供了一个名为的抽象类,该类包含所有方法,这些方法可以使您的生活更轻松地讨论与数据库表的交互。这是类应该实现的类 例子 假设您的网站中有一个页面,您希望在其中向用户显示本地商店的产品列表。您的数据库中有一个名为“products”的表,其中包含所有有用的信息,如美国名称、价格和可用性 您将有一个控制器,其操作名为indexAction()或listAction()。此操作准备将数据发送到视图,如下所示:在zend framework中执行用于创建表和数据库的sql代码,sql,zend-framework,Sql,Zend Framework,我编写了一个sql脚本,并在其中创建了一个表; 现在我需要知道,如何执行这个脚本?(使用哪些代码?) 我还有一个问题:在哪里?我必须在哪里写这些代码?(zend项目中的哪个文件夹?) 如果可能,请举例说明。谢谢在数据库中创建表 Zend框架不应该是创建表的框架,因此,我的建议是在其他环境中运行这些脚本。 最快的可能是自己的SQL shell,但是如果您使用的是MySQL,您可以使用另一个软件,例如MySQLWorkbench 创建表后,通过以下方式访问表: 介绍 当您使用Zend框架时,您使用的
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;
}
}