国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah php教程 PHP開發(fā) Zend Framework數(shù)據(jù)庫操作方法實(shí)例總結(jié)

Zend Framework數(shù)據(jù)庫操作方法實(shí)例總結(jié)

Jan 05, 2017 am 09:31 AM

本文實(shí)例講述了Zend Framework數(shù)據(jù)庫操作方法。分享給大家供大家參考,具體如下:

示例:

<?php
//
// SELECT *
//   FROM round_table
//   WHERE noble_title = "Sir"
//   ORDER BY first_name
//   LIMIT 10 OFFSET 20
//
// 你可以使用一種重復(fù)定義的方式...
$select->from(&#39;round_table&#39;, &#39;*&#39;);
$select->where(&#39;noble_title = ?&#39;, &#39;Sir&#39;);
$select->order(&#39;first_name&#39;);
$select->limit(10,20);
// ...或者使用一種連續(xù)定義的方式:
$select->from(&#39;round_table&#39;, &#39;*&#39;)
->where(&#39;noble_title = ?&#39;, &#39;Sir&#39;)
->order(&#39;first_name&#39;)
->limit(10,20);
// 但是,讀取數(shù)據(jù)的方法相同
$sql = $select->__toString();
$result = $db->fetchAll($sql);
// 對于以上任一種方式,你都可以傳送$select對象本身
// 使用Zend_Db_Select對象的 __toString()方法就可以得到查詢語句
$result = $db->fetchAll($select);
?>

你也可以在你的查詢語句中使用綁定的參數(shù),而不需要自己為參數(shù)加引號(hào)。

<?php
//
// SELECT *
//   FROM round_table
//   WHERE noble_title = "Sir"
//   ORDER BY first_name
//   LIMIT 10 OFFSET 20
//
$select->from(&#39;round_table&#39;, &#39;*&#39;)
  ->where(&#39;noble_title = :title&#39;)
  ->order(&#39;first_name&#39;)
  ->limit(10,20);
// 讀取結(jié)果使用綁定的參數(shù)
$params = array(&#39;title&#39; => &#39;Sir&#39;);
$result = $db->fetchAll($select, $params);
?>

同一表中查詢多列數(shù)據(jù)

當(dāng)需要從某一個(gè)指定的表查詢某幾列時(shí),可以使用from()方法,將需要 查詢的表名和列名都在該方法中指定。表名和列名都可以通過別名代替 ,而且也可以根據(jù)需要多次使用from()方法。

<?php
// 創(chuàng)建一個(gè)$db對象,假定adapter為Mysql
$select = $db->select();
// 從some_table表中讀取a,b,c三列
$select->from(&#39;some_table&#39;, &#39;a, b, c&#39;);
// 同樣可以:
$select->from(&#39;some_table&#39;, array(&#39;a&#39;, &#39;b&#39;, &#39;c&#39;);
// 從foo AS bar表中讀取列bar.col
$select->from(&#39;foo AS bar&#39;, &#39;bar.col&#39;);
// 從foo, bar兩個(gè)表中讀取foo.col 別名為col1,bar.col別名為col2
$select->from(&#39;foo&#39;, &#39;foo.col AS col1&#39;);
$select->from(&#39;bar&#39;, &#39;bar.col AS col2&#39;);
?>

多表聯(lián)合查詢

當(dāng)需要進(jìn)行表聯(lián)合查詢時(shí),可以使用join()方法。首先,設(shè)定進(jìn)行表 聯(lián)合查詢的表名,然后是表聯(lián)合的條件(ares注:該條件是針對多表 內(nèi)部連接的條件),最后是查詢的列名。同樣,你可以根據(jù)需要多次 使用join()方法。

<?php
// 創(chuàng)建一個(gè)$db對象,假定adapter為Mysql.
$select = $db->select();
//
// SELECT foo.*, bar.*
//   FROM foo
//   JOIN bar ON foo.id = bar.id
//
$select->from(&#39;foo&#39;, &#39;*&#39;);
$select->join(&#39;bar&#39;, &#39;foo.id = bar.id&#39;, &#39;*&#39;);
?>

WHERE條件

當(dāng)需要要增加where條件時(shí),可以使用where()方法。你可以傳送一個(gè) 普通的查詢語句字符串,也可以傳送一個(gè)使用?

<?php
// 創(chuàng)建一個(gè)$db對象,調(diào)用SELECT方法.
$select = $db->select();
//
// SELECT *
//   FROM round_table
//   WHERE noble_title = "Sir"
//   AND favorite_color = "yellow"
//
$select->from(&#39;round_table&#39;, &#39;*&#39;);
$select->where(&#39;noble_title = "Sir"&#39;); // embedded value
$select->where(&#39;favorite_color = ?&#39;, &#39;yellow&#39;); // quoted value
//
// SELECT *
//   FROM foo
//   WHERE bar = "baz"
//   OR id IN("1", "2", "3")
//
$select->from(&#39;foo&#39;, &#39;*&#39;);
$select->where(&#39;bar = ?&#39;, &#39;baz&#39;);
$select->orWhere(&#39;id IN(?)&#39;, array(1, 2, 3);
?>

GROUP BY分句

根據(jù)需要,可以多次使用group()方法給查詢到的數(shù)據(jù)進(jìn)行分組

<?php
// 創(chuàng)建一個(gè)$db對象,調(diào)用SELECT方法.
$select = $db->select();
//
// SELECT COUNT(id)
//   FROM foo
//   GROUP BY bar, baz
//
$select->from(&#39;foo&#39;, &#39;COUNT(id)&#39;);
$select->group(&#39;bar&#39;);
$select->group(&#39;baz&#39;);
// 同樣可以這樣調(diào)用 group() 方法:
$select->group(&#39;bar, baz&#39;);
// 還可以:
$select->group(array(&#39;bar&#39;, &#39;baz&#39;));
?>

HAVING 條件

當(dāng)需要在查詢結(jié)果中加入having條件時(shí),可以使用having()方法。 這種方法與where()方法的功能一樣。

當(dāng)你多次調(diào)用having()方法時(shí),各個(gè)having的條件會(huì)“并”在一起進(jìn)行操作; 假如你需要實(shí)現(xiàn)“或 ”操作,可以使用orHaving()方法 。

<?php
// 創(chuàng)建一個(gè)$db對象,調(diào)用SELECT方法.
$select = $db->select();
//
// SELECT COUNT(id) AS count_id
//   FROM foo
//   GROUP BY bar, baz
//   HAVING count_id > "1"
//
$select->from(&#39;foo&#39;, &#39;COUNT(id) AS count_id&#39;);
$select->group(&#39;bar, baz&#39;);
$select->having(&#39;count_id > ?&#39;, 1);
?>

ORDER BY 分句

根據(jù)需要,可以多次使用order()方法給查詢到的數(shù)據(jù)進(jìn)行排序

<?php
// 創(chuàng)建一個(gè)$db對象,調(diào)用SELECT方法.
$select = $db->select();
//
// SELECT * FROM round_table
//   ORDER BY noble_title DESC, first_name ASC
//
$select->from(&#39;round_table&#39;, &#39;*&#39;);
$select->order(&#39;noble_title DESC&#39;);
$select->order(&#39;first_name&#39;);
// 同樣可以這樣調(diào)用 order() 方法:
$select->order(&#39;noble_title DESC, first_name&#39;);
// 還可以:
$select->order(array(&#39;noble_title DESC&#39;, &#39;first_name&#39;));
?>

通過總數(shù)和偏移量進(jìn)行LIMIT限制

Zend_db_select可以支持?jǐn)?shù)據(jù)庫層的limit語句限制。對于一些數(shù)據(jù)庫,例如mysql 和postgresql,實(shí)現(xiàn)這些是相對容易的,因?yàn)檫@些數(shù)據(jù)庫本身就支持“l(fā)imit:count” 語法。

對于其他一些數(shù)據(jù)庫來說,例如微軟的sqlserver和oracle,要實(shí)現(xiàn)limit功能 就不那么簡單了,因?yàn)樗麄儽旧砭透静恢С謑imit語句。MS-SQL有一個(gè)top語 句來實(shí)現(xiàn),而oracle要實(shí)現(xiàn)limit功能,查詢語句的寫法就更特殊一些。由于 zend_db_select內(nèi)在地工作的方式,我們可以重寫select語句以在oracle中 實(shí)現(xiàn)上述開源數(shù)據(jù)庫系統(tǒng)的limit功能。

要通過設(shè)定查詢的總數(shù)和偏移量對返回的結(jié)果進(jìn)行限制,可以使用limit()方法, 總數(shù)值和一個(gè)可選的偏移量作為調(diào)用該方法的參數(shù)。

<?php
// 首先,一個(gè)簡單的 "LIMIT :count"
$select = $db->select();
$select->from(&#39;foo&#39;, &#39;*&#39;);
$select->order(&#39;id&#39;);
$select->limit(10);
//
// 在mysql/psotgreSql/SQLite,可以得到這樣的語句:
//
// SELECT * FROM foo
//   ORDER BY id ASC
//   LIMIT 10
//
// 但是在Microsoft SQL下,可以得到這樣的語句:
//
// SELECT TOP 10 * FROM FOO
//   ORDER BY id ASC
//
//
// 現(xiàn)在, 是更復(fù)雜的 "LIMIT :count OFFSET :offset"方法
$select = $db->select();
$select->from(&#39;foo&#39;, &#39;*&#39;);
$select->order(&#39;id&#39;);
$select->limit(10, 20);
//
// 在mysql/psotgreSql/SQLite,可以得到這樣的語句:
//
// SELECT * FROM foo
//   ORDER BY id ASC
//   LIMIT 10 OFFSET 20
//
// 但是在Microsoft SQL下,由于不支持偏移量功能,可以得到這樣sql語句:
//
// SELECT * FROM (
//   SELECT TOP 10 * FROM (
//     SELECT TOP 30 * FROM foo ORDER BY id DESC
//   ) ORDER BY id ASC
// )
//
// Zend_Db_Adapter 可以自動(dòng)的完成sql語句的動(dòng)態(tài)創(chuàng)建.
//
?>

通過頁數(shù)和總數(shù)進(jìn)行LIMIT限制

Zend_db_select同樣也提供了翻頁的limit功能。假如你想要從結(jié)果中找到 特定“頁數(shù)”的結(jié)果,使用limitPage()方法;將你需要的頁數(shù)值和每頁顯示 的數(shù)據(jù)值數(shù)作為參數(shù)傳過去即可。

<?php
// 構(gòu)造基礎(chǔ)的select方法:
$select = $db->select();
$select->from(&#39;foo&#39;, &#39;*&#39;);
$select->order(&#39;id&#39;);
// ... 限制到第三頁,每頁包括10行數(shù)據(jù)
$select->limitPage(3, 10);
//
// 在MySQL/PostgreSQL/SQLite下, 可以得到:
//
// SELECT * FROM foo
//   ORDER BY id ASC
//   LIMIT 10 OFFSET 20
//
?>

希望本文所述對大家基于Zend Framework框架的PHP程序設(shè)計(jì)有所幫助。

更多Zend Framework數(shù)據(jù)庫操作方法實(shí)例總結(jié)相關(guān)文章請關(guān)注PHP中文網(wǎng)!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276