如何在 Zend 2 中执行更新查询?
How do I execute an update query in Zend 2?
我尝试不使用函数 execute(),我尝试以这种方式执行更新查询:
public function __construct(Adapter $adapter) {
ini_set('display_errors', true);
$this->adapter = $adapter;
}
public function getUserProfile($array_post) {
$data = array(
'username' => $array_post['username'],
'email' => $array_post['mail']
);
$where = $this->adapter->quoteInto('id = ?', $array_post['userid']);
$this->update($data, $where);
}
但我不知道 ZEND 2 中此 quoteInto() 的等效功能是什么。现在我得到一个空白页,执行时没有错误,没有什么 。你能帮我用这个方法吗?谢谢
更新 我也这样试过:
$data = array(
'username' => $array_post['username'],
'email' => $array_post['mail']
);
$update = $this->adapter->update();
$update = $update->set($data);
$update->where(array('id' => $array_post['userid']));
与 Zend 1 相比,数据库在 Zend 2 中的工作方式有很大不同。适配器是一个非常轻量级的对象,不包含任何 CRUD 方法。如果要使用这些方法,则需要使用 TableGateway。
或者您可以创建一个 SQL 对象,然后使用适配器执行它。
我创建了一个非常简单的活动记录实现(它的工作方式很像 Zend 1 表)以使其更简单一些。如果您想查看,这里有 link:https://github.com/forrestLyman/ZendActiveRecord
这是使用 ForrestLyman 提到的 TableGateway
的示例。
public function updateAction($data)
{
$adapter = $this->tableGateway->getAdapter();
$sql = new Sql($adapter);
$update = $sql->update();
$update->table('table_name');
$update->set($data);
$update->where('action_id = '.$data['action_id'].'');
$statement = $sql->prepareStatementForSqlObject($update);
$result = $statement->execute();
$flag = $result->getAffectedRows();
if(!($flag)){
return false;
}else{
return true;
}
}
我尝试不使用函数 execute(),我尝试以这种方式执行更新查询:
public function __construct(Adapter $adapter) {
ini_set('display_errors', true);
$this->adapter = $adapter;
}
public function getUserProfile($array_post) {
$data = array(
'username' => $array_post['username'],
'email' => $array_post['mail']
);
$where = $this->adapter->quoteInto('id = ?', $array_post['userid']);
$this->update($data, $where);
}
但我不知道 ZEND 2 中此 quoteInto() 的等效功能是什么。现在我得到一个空白页,执行时没有错误,没有什么 。你能帮我用这个方法吗?谢谢
更新 我也这样试过:
$data = array(
'username' => $array_post['username'],
'email' => $array_post['mail']
);
$update = $this->adapter->update();
$update = $update->set($data);
$update->where(array('id' => $array_post['userid']));
与 Zend 1 相比,数据库在 Zend 2 中的工作方式有很大不同。适配器是一个非常轻量级的对象,不包含任何 CRUD 方法。如果要使用这些方法,则需要使用 TableGateway。
或者您可以创建一个 SQL 对象,然后使用适配器执行它。
我创建了一个非常简单的活动记录实现(它的工作方式很像 Zend 1 表)以使其更简单一些。如果您想查看,这里有 link:https://github.com/forrestLyman/ZendActiveRecord
这是使用 ForrestLyman 提到的 TableGateway
的示例。
public function updateAction($data)
{
$adapter = $this->tableGateway->getAdapter();
$sql = new Sql($adapter);
$update = $sql->update();
$update->table('table_name');
$update->set($data);
$update->where('action_id = '.$data['action_id'].'');
$statement = $sql->prepareStatementForSqlObject($update);
$result = $statement->execute();
$flag = $result->getAffectedRows();
if(!($flag)){
return false;
}else{
return true;
}
}