이 글에서는 데이터베이스 연산 기능 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 중국어 웹사이트를 참고하세요.
관련 권장 사항:
위 내용은 Discuz!X/database DB:: 기능 운용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!