我正在对我的框架进行更新。 以前我使用zf1 zend db select为我的数据访问对象类。 现在,我想转移并升级到zf2。 我在翻译插入,更新,选择和删除查询时遇到问题,并想知道是否有人可以帮助我。
我应该使用哪些新类? 它是否涉及很多重新编码? 任何引用都会有所帮助(正在查看stackoverflow,但是找到了一个全面的指南)下面是我为zf1插入/更新/删除/选择的代码
插
$userdata = array('email' => $email, 'name' => $name, 'gender' => $gender, 'location' => $location, 'fbid' => $fbid, 'ipaddress' => $ipaddress, 'jointimestamp'=>new Zend_Db_Expr('NOW()')); $this->dbo->insert('users', $userdata); return $this->dbo->lastInsertId();选择
if($this->dbo->fetchOne('SELECT id FROM users WHERE username = ?',$username)){ return true; }else{ return false; }更新
$userdata = array($field => $value); $this->dbo->update('user', $userdata, $this->dbo->quoteInto('useremail = ?', $this->user));另外,zf2有fetchall,fetchone,fetchrow方法等吗?
感谢任何建议。
I am doing a update on my framework. Previously i am using zf1 zend db select for my data access object class. Now, i would like to make a shift and upgrade to zf2. I have problems translating for the insert, update, select, and delete queries and wonder if someone can shed some light to assist me.
What are the new classes that i should use? Does it involve alot of re-coding? Any references will helps alot ( Been looking through stackoverflow, but haven found a comprehensive guide)Below is my code for insert/update/delete/select for zf1
Insert
$userdata = array('email' => $email, 'name' => $name, 'gender' => $gender, 'location' => $location, 'fbid' => $fbid, 'ipaddress' => $ipaddress, 'jointimestamp'=>new Zend_Db_Expr('NOW()')); $this->dbo->insert('users', $userdata); return $this->dbo->lastInsertId();Select
if($this->dbo->fetchOne('SELECT id FROM users WHERE username = ?',$username)){ return true; }else{ return false; }Update
$userdata = array($field => $value); $this->dbo->update('user', $userdata, $this->dbo->quoteInto('useremail = ?', $this->user));Also, does zf2 has fetchall, fetchone, fetchrow methods etc?
Appreciate any advices.
最满意答案
阅读完文档后,我发布了zf2的insert / select / update查询。 以下是代码片段,以便将来可能需要它的人受益。 我使用Zend \ Db \ Select作为我的自定义mvc框架的独立类。
适配器
$adapter = new Zend\Db\Adapter\Adapter(array( 'driver' => 'pdo_mysql', 'host' => DB_HOST, 'database' => DB_PREFIX.DB_NAME, 'username' => DB_USER, 'password' => DB_PW ));选择
$select = $this->sql->select() ->from('table') ->join('users', 'users.id = table.userid') ->order("table.createdtimestamp DESC"); $statement = $this->sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); return $resultSet->toArray();插
$insert = $this->sql->insert() ->into("messages"); $userdata = array( 'message' => $message, 'createdtimestamp'=>new Zend\Db\Sql\Expression('NOW()'), 'userid' => $userid); $insert->values($userdata ); $statement = $this->sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); //return last insert id return $this->dbo->getDriver()->getLastGeneratedValue();更新
$update = $this->sql->update() ->table('posts') ->where(array('pid'=>$pid)); $numbercountarr = array('numbercount' => new Zend\Db\Sql\Expression('numbercount+ 1')); $update->set($numbercountarr ); $statement = $this->sql->prepareStatementForSqlObject($update); result = $statement->execute();计算行数
$statement = $this->sql->prepareStatementForSqlObject($query); $result = $statement->execute(); return $result->count();希望这可以帮助那些需要它的人节省一些时间。
After reading the documentation, i have come out with the insert/select/update queries for zf2. Below is the code snippet for benefit of those who may need it in future. I am using Zend\Db\Select as a standalone classes for my custom mvc framework.
Adapter
$adapter = new Zend\Db\Adapter\Adapter(array( 'driver' => 'pdo_mysql', 'host' => DB_HOST, 'database' => DB_PREFIX.DB_NAME, 'username' => DB_USER, 'password' => DB_PW ));Select
$select = $this->sql->select() ->from('table') ->join('users', 'users.id = table.userid') ->order("table.createdtimestamp DESC"); $statement = $this->sql->prepareStatementForSqlObject($select); $result = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($result); return $resultSet->toArray();Insert
$insert = $this->sql->insert() ->into("messages"); $userdata = array( 'message' => $message, 'createdtimestamp'=>new Zend\Db\Sql\Expression('NOW()'), 'userid' => $userid); $insert->values($userdata ); $statement = $this->sql->prepareStatementForSqlObject($insert); $result = $statement->execute(); //return last insert id return $this->dbo->getDriver()->getLastGeneratedValue();Update
$update = $this->sql->update() ->table('posts') ->where(array('pid'=>$pid)); $numbercountarr = array('numbercount' => new Zend\Db\Sql\Expression('numbercount+ 1')); $update->set($numbercountarr ); $statement = $this->sql->prepareStatementForSqlObject($update); result = $statement->execute();To count rows
$statement = $this->sql->prepareStatementForSqlObject($query); $result = $statement->execute(); return $result->count();Hope this can help those who need it save some time.
更多推荐
发布评论