Zend Framework 데이터베이스 운영 기술 요약
본 글은 주로 Zend Framework 데이터베이스 운영 기술을 소개하고 있으며, 데이터베이스 운영을 위한 Zend Framework의 공통 기능, 공통 운영, 관련 주의사항을 예시 형태로 요약 분석하였습니다.
예제는 Zend Framework 데이터베이스 작업을 요약합니다. 다음과 같이 참조용으로 모든 사람과 공유하십시오.
Zend_Db 데이터베이스 지식
예:
모델 파일:
$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 파일:
<?php foreach ($this->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), 두 번째 필드는 값(이름)
반환: Array([1] => Zodiac Romance [ 2] => Romance), 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();
쿼리 사용법
//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);
사용 선택
$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, $row); // 最后插入的数据id echo $last_insert_id = $db->lastInsertId(); $row=array( 'name'=>'curdate()', 'address' => new Zend_Db_Expr ('curdate()') )
이런 식으로 하위 필드 이름에는 curdate() 문자열이 삽입되고, 주소에는 시간 값(curdate() 2009-05-09 결과)이 삽입됩니다.
두 번째 방법: 이 표에 있는 항목에만 적합할 수 있으며 아직 요약되지 않았습니다
(5)트랜잭션 처리
$table = 'm_gao';// 插入数据的数据表 $db = $this->getAdapter(); $db->beginTransaction();//Zend_Db_Adapter会回到自动commit模式下,直到你再次调用 beginTransaction()方法 // 以"列名"=>"数据"的格式格式构造插入数组,插入数据行 $row = array ( 'id'=>null, 'title' => '大家好。111', 'content' => '影视网要改成用zend framework开发啊', 'time' => '2009-05-04 17:23:36', ); try { // 插入数据行并返回插入的行数 $rows_affected = $db->insert($table, $row); // 最后插入的数据id $last_insert_id = $db->lastInsertId(); $db->commit();// 事务提交 }catch (Exception $e){ $db->rollBack(); echo '捕获异常:'.$e->getMessage();//打出异常信息 } echo $last_insert_id;
(6) 기타
$db = $this->getAdapter(); $tables = $db->listTables(); //列出当前数据库中的所有表 $fields = $db->describeTable('m_video');//列出一个表的字段情况
Zend Framework 데이터베이스 운영 기술 요약 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

.NET Framework 4는 개발자와 최종 사용자가 Windows에서 최신 버전의 애플리케이션을 실행하는 데 필요합니다. 그러나 .NET Framework 4를 다운로드하고 설치하는 동안 많은 사용자가 설치 프로그램이 중간에 중지되고 "오류 코드 0x800c0006으로 인해 다운로드에 실패했기 때문에 .NET Framework 4가 설치되지 않았습니다"라는 오류 메시지가 표시된다고 불평했습니다. 장치에 .NETFramework4를 설치하는 동안에도 이 문제가 발생한다면 올바른 위치에 있는 것입니다.

Windows 11 또는 Windows 10 PC에 업그레이드 또는 업데이트 문제가 있을 때마다 일반적으로 실패의 실제 원인을 나타내는 오류 코드가 표시됩니다. 그러나 오류 코드가 표시되지 않고 업그레이드나 업데이트가 실패하면 혼란이 발생할 수 있습니다. 편리한 오류 코드를 사용하면 문제가 어디에 있는지 정확히 알 수 있으므로 문제를 해결할 수 있습니다. 하지만 오류 코드가 나타나지 않기 때문에 문제를 식별하고 해결하기가 어렵습니다. 단순히 오류의 원인을 찾는 데 많은 시간이 걸립니다. 이 경우 오류의 실제 원인을 쉽게 식별하는 데 도움이 되는 Microsoft에서 제공하는 SetupDiag라는 전용 도구를 사용해 볼 수 있습니다.
![SCNotification이 작동을 멈췄습니다. [수정을 위한 5단계]](https://img.php.cn/upload/article/000/887/227/168433050522031.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Windows 사용자는 컴퓨터를 시작할 때마다 SCNotification이 작동을 중지했습니다. 오류가 발생할 수 있습니다. SCNotification.exe는 권한 오류 및 네트워크 오류로 인해 PC를 시작할 때마다 충돌이 발생하는 Microsoft 시스템 알림 파일입니다. 이 오류는 문제가 있는 이벤트 이름으로도 알려져 있습니다. 따라서 이를 SCNotification의 작동이 중지된 것으로 표시되지 않고 버그 clr20r3으로 표시될 수 있습니다. 이 기사에서는 SCNotification이 작동을 중지하여 다시 귀찮게 하지 않도록 수정하기 위해 취해야 할 모든 단계를 살펴보겠습니다. SCNotification.e는 무엇입니까

PHP는 매우 널리 사용되는 프로그래밍 언어이며 CodeIgniter4는 일반적으로 사용되는 PHP 프레임워크입니다. 웹 애플리케이션을 개발할 때 프레임워크를 사용하면 개발 프로세스 속도를 높이고 코드 품질을 향상시키며 유지 관리 비용을 줄일 수 있습니다. 이 기사에서는 CodeIgniter4 프레임워크를 사용하는 방법을 소개합니다. CodeIgniter4 프레임워크 설치 CodeIgniter4 프레임워크는 공식 홈페이지(https://codeigniter.com/)에서 다운로드할 수 있습니다. 아래에

Microsoft.NET 버전 4.5.2, 4.6 또는 4.6.1을 설치한 Microsoft Windows 사용자가 Microsoft에서 향후 제품 업데이트를 통해 프레임워크를 지원하도록 하려면 최신 버전의 Microsoft Framework를 설치해야 합니다. Microsoft에 따르면 세 가지 프레임워크 모두 2022년 4월 26일에 지원이 중단됩니다. 지원 날짜가 종료되면 해당 제품은 "보안 수정 또는 기술 지원"을 받을 수 없습니다. 대부분의 가정용 장치는 Windows 업데이트를 통해 최신 상태로 유지됩니다. 이러한 장치에는 .NET Framework 4.8과 같은 최신 버전의 프레임워크가 이미 설치되어 있습니다. 자동으로 업데이트되지 않는 장치는

Pagoda Panel은 서버, 특히 웹 사이트 구축, 데이터베이스 관리 및 서버 유지 관리가 필요한 소규모 기업이나 개인 사용자를 신속하게 배포, 관리 및 모니터링하는 데 도움이 되는 강력한 패널 소프트웨어입니다. 이러한 작업 중에서 MySQL 데이터베이스 관리는 많은 경우 중요한 작업입니다. 그렇다면 MySQL 관리를 위해 Pagoda 패널을 사용하는 방법은 무엇일까요? 다음으로 단계별로 소개하겠습니다. 1단계: Pagoda 패널 설치 MySQL 관리를 위해 Pagoda 패널을 사용하기 전에 먼저 Pagoda 패널을 설치해야 합니다.

PHP를 사용하여 Linux 환경에서 데이터베이스 작업을 수행하는 방법 최신 웹 애플리케이션에서 데이터베이스는 필수 구성 요소입니다. PHP는 다양한 데이터베이스와 상호 작용할 수 있는 인기 있는 서버측 스크립팅 언어입니다. 이 기사에서는 Linux 환경에서 데이터베이스 작업을 위해 PHP 스크립트를 사용하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1단계: 필요한 소프트웨어 및 종속성 설치 시작하기 전에 Linux 환경에 PHP 및 관련 종속성이 설치되어 있는지 확인해야 합니다. 대개

PHP 구현 프레임워크: ZendFramework 입문 튜토리얼 ZendFramework는 PHP에서 개발하고 현재 ZendTechnologies에서 유지 관리하는 오픈 소스 웹 사이트 프레임워크입니다. ZendFramework는 MVC 디자인 패턴을 채택하고 Web2.0 애플리케이션 및 Web Serve 구현을 지원하기 위한 재사용 가능한 코드 라이브러리 시리즈를 제공합니다. ZendFramework는 PHP 개발자들에게 매우 인기 있고 존경받고 있으며 다양한 기능을 갖추고 있습니다.
