作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 Controller :
public function addAction()
{
if($this->getAuthService()->hasIdentity())
{
$this->layout('layout/adminDashboardLayout');
$request= $this->getRequest();
if($request->isPost())
{
$rowmaterial= new RowmaterialModel();
//Current User Id from Session
$session = new Container('user');
$userId = $session->offsetGet('userId');
$rowmaterial->setCode($request->getPost('category_alias'));
$rowmaterial->setCategory($request->getPost('category'));
$rowmaterial->setCreatedOn(date('Y-m-d H:i:s'));
$rowmaterial->setUpdatedOn(date('Y-m-d H:i:s'));
$rowmaterial->setCreatedBy($userId);
$this->getCategoryTable()->inserts($category);
}
$page = (int) $this->params()->fromRoute('page', 1);
$iteratorAdapter = new \Zend\Paginator\Adapter\ArrayAdapter(iterator_to_array($this->getRowmaterialTable()->fetchAll()));
$category = new \Zend\Paginator\Paginator($iteratorAdapter);
$viewModel= new ViewModel(array(
'fetchAllDatas' => $category->setCurrentPageNumber($page)->setItemCountPerPage('8'),
'categories' =>$this->getCategoryTable()->fetchAllCategoryStatusOn(),
'uom' => $this->getUomTable()->fetchAllUomStatusOn(),
'flashMessages' => $this->flashMessenger()->getMessages(),
));
return $viewModel;
}
else
{
$this->flashMessenger()->addMessage("Please Login");
return $this->redirect()->toRoute("admin");
}
这是我的第一个模型文件函数:
public function fetchAllCategoryStatusOn()
{
$statement= $this->adapter->query("call fetchAllCategoryStatusOn()");
$result= $statement->execute();
return $result;
}
这是我的第二个模型文件函数:
public function fetchAllUomStatusOn()
{
$statement= $this->adapter->query("call fetchAllUomStatusOn()");
$result= $statement->execute();
return $result;
}
在调用此 fetchAllUomStatusOn()
存储过程时将显示此错误
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries
are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only
ever going to run against mysql, you may enable query buffering by setting the
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
这是我的 global.php 文件:
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=cp;host=localhost',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
我做了很多搜索都没有得到正确答案,最后我得到了“closeCursor()”函数。我是这样使用这个函数的,
public function fetchAllUomStatusOn()
{
$statement= $this->adapter->query("call fetchAllUomStatusOn()");
$statement->closeCursor();
$result = $statement->execute();
return $result;
}
通过使用这个函数会得到这个错误。
Fatal error: Call to undefined method Zend\Db\Adapter\Driver\Pdo\Statement::closeCursor() in /var/www/cp/module/Admin/src/Admin/Model/UomTable.php on line 100.
我的 php 版本是 5.4。所以请帮助我......这是我第一次尝试使用 Stackoverflow。抱歉我的英语不好。
最佳答案
我解决了这个错误。在 Controller 中使用 iterator_to_array()
函数。
public function addAction()
{
if($this->getAuthService()->hasIdentity())
{
$this->layout('layout/adminDashboardLayout');
$request= $this->getRequest();
if($request->isPost())
{
$rowmaterial= new RowmaterialModel();
//Current User Id from Session
$session = new Container('user');
$userId = $session->offsetGet('userId');
$rowmaterial->setCode($request->getPost('category_alias'));
$rowmaterial->setCategory($request->getPost('category'));
$rowmaterial->setCreatedOn(date('Y-m-d H:i:s'));
$rowmaterial->setUpdatedOn(date('Y-m-d H:i:s'));
$rowmaterial->setCreatedBy($userId);
$this->getCategoryTable()->inserts($category);
}
$page = (int) $this->params()->fromRoute('page', 1);
$iteratorAdapter = new \Zend\Paginator\Adapter\ArrayAdapter(iterator_to_array($this->getRowmaterialTable()->fetchAll()));
$category = new \Zend\Paginator\Paginator($iteratorAdapter);
$viewModel= new ViewModel(array(
'fetchAllDatas' => $category->setCurrentPageNumber($page)->setItemCountPerPage('8'),
'categories' => iterator_to_array($this->getCategoryTable()->fetchAllCategoryStatusOn()),
'uom' => iterator_to_array($this->getUomTable()->fetchAllUomStatusOn()),
'flashMessages' => $this->flashMessenger()->getMessages(),
));
return $viewModel;
}
else
{
$this->flashMessenger()->addMessage("Please Login");
return $this->redirect()->toRoute("admin");
}
关于php - 第二次调用存储过程导致错误 SQLSTATE[HY000] : General error: 2014 Cannot execute queries in zf2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687095/
我是一名优秀的程序员,十分优秀!