Home php教程 php手册 Zend Framework 数据库总结[原创]

Zend Framework 数据库总结[原创]

Jun 13, 2016 am 10:37 AM
framework model zend example Original Summarize database document Knowledge

Zend_Db数据库知识
例子:
Model文件:
$this->fetchAll("is_jian=1","id DESC",0,2)->toArray();//根据is_jian=1,按id倒序排列取前2条记录当第一个参数为null时,则直接按id倒序排列ASC为正序。
路由文件:
$video=new Video();//实例化数据库类
$this->view->get2Video =$video->get2Video();//取到2条首页推荐的数据
index.phtml文件:
get2Video as $video): ?>
=$video[id]; ?>
=$video[name]; ?>
endforeach; ?>
添加引号防止数据库攻击
quote用法
$value = $db->quote(St John"s Wort);
// $value 现在变成了 "St John"s Wort" (注意两边的引号)
// 为数组加引号
$value = $db->quote(array(a, b, c));
// $value 现在变成了 "a", "b", "c" (","分隔的字符串)
quoteInto用法
echo $where = $db->quoteInto(id = ?, 1);
// $where 现在为 id = "1" (注意两边的引号)
// 在where语句中为数组加上引号
$where = $db->quoteInto(id IN(?), array(1, 2, 3));
// $where 现在为 id IN("1", "2", "3") (一个逗号分隔的字符串)
(1)数据查询总结
直接进行查询.    ( 使用完整的sql语句)
//function quoteInto($text, $value, $type = null, $count = null)
$db = $this->getAdapter();
$sql = $db->quoteInto(SELECT * FROM `m_video` WHERE `is_guo` =?, 1);
$result = $db->query($sql);
// 使用PDOStatement对象$result将所有结果数据放到一个数组中
$videoArray = $result->fetchAll();
fetchAll用法
fetchAll($where = null, $order = null, $count = null, $offset = null)
取回结果集中所有字段的值,作为连续数组返回,如果参数不设置就写成null
可以取回结果集的指定条数
$videoArray=$this->fetchAll("is_jian=1 and is_guo=1","id DESC",0,2)->toArray();

fetchAssoc用法
fetchAssoc($sql, $bind = array())
取回结果集中所有字段的值,作为关联数组返回, 第一个字段作为码
$db = $this->getAdapter();
$videoArray=$db->fetchAssoc("SELECT * FROM m_video WHERE `is_jian` = :title",array(title => 1));

fetchCol用法
fetchCol($sql, $bind = array())
取回所有结果行的第一个字段名
$db = $this->getAdapter();
$videoArray=$db->fetchCol("SELECT name FROM m_video WHERE `is_jian` = :title",array(title => 1));

fetchOne用法
fetchOne($sql, $bind = array())
只取回第一个字段值
$db = $this->getAdapter();
echo $videoArray=$db->fetchOne("SELECT count(*) FROM m_video WHERE `is_jian` = :title",array(title => 1));

fetchPairs用法
fetchPairs($sql, $bind = array())
取回一个相关数组,第一个字段值为码(id),第二个字段为值(name)
返回:Array( [1] => 十二生肖奇缘    [2] => 桃花运),1,2:为id字段。
$db = $this->getAdapter();
$videoArray=$db->fetchPairs("SELECT id, name FROM m_video WHERE is_jian = :title",array(title => 1));

fetchRow用法
fetchRow($where = null, $order = null)
只取回结果集的第一行
$videoArray=$this->fetchRow("is_jian=1 and is_guo=1", id DESC)->toArray();
query用法
//function query($sql, $bind = array())
$db = $this->getAdapter();
$result = $db->query(SELECT * FROM `m_video`);
//$result = $db->query(SELECT * FROM `m_video` WHERE `name` = ? AND id = ?,array(十二生肖奇缘, 1));
//$result->setFetchMode(Zend_Db::FETCH_OBJ);//FETCH_OBJ为默认值,FETCH_NUM,FETCH_BOTH
//while ($row = $result->fetch()) {
//    echo $row[name];
//}
//$rows = $result->fetch();
//$rows = $result->fetchAll();
//$obj = $result->fetchObject();//echo $obj->name;
// echo $Column = $result->fetchColumn(0);//得到结果集的第一个字段,比如0为id号,用于只取一个字段的情况
print_r($rows);
select用法
$db = $this->getAdapter();
$select = $db->select();
$select->from(m_video, array(id,name,clicks))
->where(is_guo = :is_guo and name = :name)
->order(name)// 按什么排序列,参加为数组(多个字段)或字符串(一个字段)
->group()//分组
->having()//分组查询数据的条件
->distinct()// 无参数,去掉重复的值。有时候与groupby返回的结果一样
->limit(10);
// 读取结果使用绑定的参数
$params = array(is_guo => 1,name=>十二生肖奇缘);
//$sql = $select->__toString();//得到查询语句,可供调试
$result = $db->fetchAll($select,$params);
执行select的查询
$stmt = $db->query($select);

$result = $stmt->fetchAll();
或用
$stmt = $select->query();
$result = $stmt->fetchAll();
如果直接用
$db->fetchAll($select)结果一样
多表联合查询用法
$db = $this->getAdapter();
$select = $db->select();
$select->from(m_video, array(id,name,pic,actor,type_id,up_time))
->where(is_guo = :is_guo and is_jian = :is_jian)
->order(up_time)
->limit(2);
$params = array(is_guo => 1,is_jian=>1);
$select->join(m_type, m_video.type_id = m_type.t_id, type_name);//多表联合查询
$videoArray = $db->fetchAll($select,$params);
find()方法,可以使用主键值在表中检索数据.
// SELECT * FROM round_table WHERE id = "1"
$row = $table->find(1);
// SELECT * FROM round_table WHERE id IN("1", "2", 3")
$rowset = $table->find(array(1, 2, 3));

(2)数据删除总结
第一种方法:可以删任意表
//quoteInto($text, $value, $type = null, $count = null)       
$table = m_video;// 设定需要删除数据的表
$db = $this->getAdapter();
$where = $db->quoteInto(name = ?, ccc);// 删除数据的where条件语句
echo $rows_affected = $db->delete($table, $where);// 删除数据并得到影响的行数
第二种方法:只能删除本表中的
        //delete用法
// delete($where)
$where = "name = bbb";
echo $this->delete($where);// 删除数据并得到影响的行数
(3)数据更新总结
第一种方法:可以更新任意表
// 以"列名"=>"数据"的格式构造更新数组,更新数据行
$table = m_video;// 更新的数据表
$db = $this->getAdapter();
$set = array (
name => 蝶影重重,
clicks => 888,
);
$where = $db->quoteInto(id = ?, 10);// where语句
// 更新表数据,返回更新的行数
echo $rows_affected = $db->update($table, $set, $where);

第二种方法:只能更新本表中的
$set = array (
name => 蝶影重重22,
clicks => 8880,
);
$db = $this->getAdapter();
$where = $db->quoteInto(id = ?, 10);// where语句
$rows_affected = $this->update($set, $where);// 更新表数据,返回更新的行数
(4)数据插入总结
第一种方法:可以在任意表中插入数据
$table = m_gao;// 插入数据的数据表
$db = $this->getAdapter();
// 以"列名"=>"数据"的格式格式构造插入数组,插入数据行
$row = array (
title     => 大家好。111,
content => 影视网要改成用zend framework开发啊,
time => 2009-05-04 17:23:36,
);
// 插入数据行并返回插入的行数
$rows_affected = $db->insert($table, $

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos iOS 18 adds a new 'Recovered' album function to retrieve lost or damaged photos Jul 18, 2024 am 05:48 AM

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

How does Hibernate implement polymorphic mapping? How does Hibernate implement polymorphic mapping? Apr 17, 2024 pm 12:09 PM

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

Detailed tutorial on establishing a database connection using MySQLi in PHP Detailed tutorial on establishing a database connection using MySQLi in PHP Jun 04, 2024 pm 01:42 PM

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

Full analysis of Go language file renaming operation Full analysis of Go language file renaming operation Apr 08, 2024 pm 03:30 PM

The os.Rename function is used in Go language to rename files. The syntax is: funcRename(oldpath,newpathstring)error. This function renames the file specified by oldpath to the file specified by newpath. Examples include simple renaming, moving files to different directories, and ignoring error handling. The Rename function performs an atomic operation and may only update directory entries when the two files are in the same directory. Renames may fail across volumes or while a file is in use.

How to handle database connection errors in PHP How to handle database connection errors in PHP Jun 05, 2024 pm 02:16 PM

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

An in-depth analysis of how HTML reads the database An in-depth analysis of how HTML reads the database Apr 09, 2024 pm 12:36 PM

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

How to connect to remote database using Golang? How to connect to remote database using Golang? Jun 01, 2024 pm 08:31 PM

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.

How to use database callback functions in Golang? How to use database callback functions in Golang? Jun 03, 2024 pm 02:20 PM

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

See all articles