需要帮助将Zend Db Select从zf1转换为zf2(Need help transforming Zend Db Select from zf1 to zf2)

编程入门 行业动态 更新时间:2024-10-25 00:29:58
需要帮助将Zend Db Select从zf1转换为zf2(Need help transforming Zend Db Select from zf1 to zf2)

我正在对我的框架进行更新。 以前我使用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.

更多推荐

本文发布于:2023-07-29 20:12:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1319424.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   Select   Zend   Db   transforming

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!