>백엔드 개발 >PHP 튜토리얼 >Discuz!X/database DB:: 기능 운용 방법

Discuz!X/database DB:: 기능 운용 방법

jacklove
jacklove원래의
2018-05-21 17:30:294598검색

이 글에서는 데이터베이스 연산 기능 db에 대해 설명합니다.

DB::table($tablename)获取正确带前缀的表名,转换数据库句柄,
DB::delete($tablename, 条件,条数限制)删除表中的数据
DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作
DB::update($tablename, 数据(数组)条件)更新操作
DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先。
DB::fetch_first($sql)取查询的第一条数据fetch
DB::fetch_all($sql)查询并fetch
DB::result_first($sql)查询结果集的第一个字段值
DB::query($sql)普通查询
DB::num_rows(查询后的资源)获得记录集总条数
DB::_execute(命令,参数)执行mysql类的命令
DB::limit(n,n)返回限制字串
DB::field(字段名, $pid) 返回条件,如果为数组则返回 in 条件
DB::order(别名, 方法)排序

참고: 특수 문자를 이스케이프하지 않고 데이터베이스에 삽입할 때 오류를 방지하려면 모든 데이터를 데이터베이스에 삽입하기 전에 addlashes()로 처리해야 합니다. Discuz!에서 GET, POST 및 FILE을 통해 얻은 모든 변수는 기본적으로 addlashes()를 사용하여 이스케이프되었으며 반복할 필요가 없습니다. 데이터 처리가 필요한 경우(예: 직접 표시), 스트립슬래시()를 사용하여 복원할 수 있지만 데이터를 데이터베이스에 삽입하기 전에 다시 이스케이프해야 합니다. 캐시 파일에서 addcslashes($string, ''')는 일반적으로 캐시된 데이터 값을 이스케이프하는 데 사용됩니다.

데이터베이스 쿼리의 가장 일반적인 예:

단일 데이터 가져오기:

$rs = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE uid=1");

여기 UID 1을 가진 사용자의 데이터가 있지만 discuz에는 사용자 데이터를 가져올 수 있는 getuserbyuid도 있습니다

Getting 여러 데이터:

$rs = DB::fetch_all("SELECT * FROM " .DB::table('common_member')." WHERE uid in(1,2,3,4,5,6)");

여기에서 얻은 것은 UID 1 2 3 4 5 6

데이터 삽입 설명

호출 방법: DB::insert()

설명: 또는 아니다. 값이 1이면 예라는 뜻이고, 그렇지 않다면 그냥 무시하거나 비워두세요

예:

먼저 pre_test라는 테이블이 있습니다

이 테이블에는 다음과 같은 필드가 있습니다: id (incrementing) name uid 필드 유형은 걱정하지 마세요

if(DB::insert('test',array('id'=>NULL,'name'=>'me','uid'=>1))) showmessage("数据插入成功");

참고: 여기서 배열의 키 이름은 데이터 테이블의 필드 이름이고 키 값은 삽입된 해당 필드의 값입니다

DB::fetch_all('SELECT * FROM %t WHERE panel=%d', array($this->_table, $panel), 'uid');
DB::fetch_all('SELECT * FROM %t WHERE uid=%d ORDER BY dateline DESC', array($this->_table, $uid), 'bid') : array();

참고:
% 숫자 DZ에서는 매개변수로 사용되므로 이를 전달해야 합니다. 먼저 DB::table($this->_table)을 대신 사용할 수 있습니다. 두 번째 경우에는 실제 표현식을 사용할 수 있습니다. , 값을 계산해서 채워 넣으면 됩니다. 이 경우에는 문제가 없을 것입니다.

이 글은 함수 연산을 요약하고 정리한 것이므로, 더 많은 관련 지식을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장 사항:

ThinkPHP 프레임워크 문자열 클래스 자세한 설명

JS 기본 - 수학 배열 Date

jQuery는 무엇을 할 수 있나요?

위 내용은 Discuz!X/database DB:: 기능 운용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.