## :-: **【注】:此文档不兼容成品搭建系统v1.x 版本** # **MySql 基础使用** > 具体使用方法详见 cmspro/lib/mysql.lib.php ## 系统内置数据库操作 **附加可选参数** ``` getField 指定欲取的字段,多个请以(,)分号隔开//例如 ->getField('uid','tid') where 查询条件 //例如 ->where("id=100") order 指定排序 //例如 ->order('id asc') ID正序 | ->order('id desc') ID倒序 limit 指定欲取的数据条数 //例如 ->limit(5) 获取5条数据 | ->limit(100,10) 从第100条开始获取10条数据 field 指定欲取的字段 名称,多个请以(,)分号隔开 //例如 ->field('uid','tid') ``` **添加数据** 单条数据添加 ``` /** * 添加数据 */ $data = array( 'port' => $port, 'type' => 'port', 'ps' => $ps, 'addtime' => date('Y-m-d H:i:s') ); DB('table')->add($data); ``` 多条数据添加 ``` /** * 添加数据 */ $c = 10; //添加10条数据 for ($i=1;$c>=$i;$i++) { $data[] = array( 'port' => $port, 'type' => 'port', 'ps' => $ps, 'addtime' => date('Y-m-d H:i:s') ); } DB('table')->adds($data); ``` **更新数据** ``` /** * 更新数据,返回受影响行 */ //更新全部 DB('table')->save($data); //条件更新 DB('table')->where("id='100'")->save($data); ``` **指定字段加** ``` /** * 指定字段加N,默认加1 */ //全部修改 DB('table')->sum('number', '100'); //条件修改 DB('table')->where("id='100'")->sum('number', '100'); ``` **删除数据** ``` /** * 删除数据(返回受影响行) */ //全部修改 DB('table')->delete(); //条件修改 DB('table')->where("id='100'")->delete(); ``` **取数据集** ``` /** * 取数据集(返回符合条件的所有数据) * * 可选择参数 field 指定欲取的字段,多个请以(,)分号隔开 * 可选参数 where 条件查询 * 可选参数 order 指定 字段 排序 desc.倒序|asc.正序 * 可选参数 limit 指定欲取的数据条数(1):一条 |(30,60):从第30条到第60条 */ //例1 $rows = DB('table')->field('id,name,username,password,accept')->where("type='1'")->select(); //例2 $rows = DB('table')->where("type='1'")->select(); foreach ($rows as $res) { echo $res['id']; } ``` **取一行数据** ``` /** * 取一行数据(只返回第一条数据) * * 可选择参数 field 指定欲取的字段,多个请以(,)分号隔开 * 可选参数 where 条件查询 * 可选参数 order 指定排序 desc.倒序|asc.正序 */ $row = DB('table')->field('id,name,username,password,accept')->where("type='1'")->find(); echo $row['id']; ``` **取指定字段值** ``` /** * 取指定字段值(当只有一条数据时,直接返回键值,否则返回数组,失败返回false) */ DB('table')->where("id=1")->getField('status'); ``` **设定指定字段值** ``` /** * 设定指定字段值 */ DB('table')->where("id=1")->setField('status', '1'); ``` **取符合条件的数据总行数** ``` /** * 取符合条件的数据总行数 * 可选参数 where 条件查询 */ //全部表 DB('table')->getCount(); //条件查询 DB('table')->where("status=1")->getCount(); ``` **执行SQL语句,返回受影响行** ``` /** * 执行SQL语句,返回受影响行 * * $sql SQL语句 * $data 更新内容 */ //例1 $sqlstr = "INSERT INTO logs(type,log,addtime) VALUES(:type,:log,:addtime)"; DB('table')->execute($sqlstr, $data); //例2 $sql = 'alter table tasks add column param text;'; DB('table')->execute($sql, null); ``` **同表复制数据** 返回创建的ID ``` /** * 同表复制数据 * @param String $id 对应ID * @param String $data 所复制的数据 * @param String $type 1:默认不复制ID 其它值复制数据中的ID * @return $this */ //查询信息 $row = DB('try')->where("id={$_GET['id']}")->find(); //自定义数据(可选) $row['status'] = '-1'; $row['lasttime'] = time(); $row['addtime'] = time(); $row['starttime'] = time(); $row['endtime'] = time() + 86400 * CP_TRY_OUTTIME; //复制信息 $tid = DB('try')->copy("id={$_GET['id']}", $row); ``` **执行SQL语句,返回数据集** ``` /** * 执行SQL语句,返回数据集 * * 纯原生SQL执行 * 限查询 */ //例1 $sqlstr = "INSERT INTO logs(type,log,addtime) VALUES(:type,:log,:addtime)"; $rows1 = DB('table')->query($sqlstr, $data); foreach ($rows1 as $res) { echo $res['id']; } //例2 $sql = 'alter table tasks add column param text;'; $rows2 = DB('table')->query($sql, null); foreach ($rows2 as $res) { echo $res['id']; } ``` **纯原生SQL执行** ``` /* * 纯原生SQL执行 * 限插入或更新 */ //例1 $sqlstr = "INSERT INTO logs(type,log,addtime) VALUES(:type,:log,:addtime)"; $rows1 = DB('table')->execute($sqlstr, $data); foreach ($rows1 as $res) { echo $res['id']; } //例2 $sql = 'alter table tasks add column param text;'; $rows2 = DB('table')->execute($sql, null); foreach ($rows2 as $res) { echo $res['id']; } ``` ## 自定义链接数据库操作 **载入数据库操作类** ``` //载入数据库操作类 cp::re('mysql'); //配置数据库信息 $conn['DB_HOST'] = '127.0.0.1'; //主机地址 本地一般采用127.0.0.1或localhost $conn['DB_PORT'] = '3306'; //数据库端口 $conn['DB_USER'] = 'root'; //数据帐户 $conn['DB_PWD'] = '123456'; //数据密码 $conn['DB_NAME'] = 'test'; //数据库名 $conn['DB_PREFIX'] = 'cp_'; //表前缀 $conn['DB_CHARSET'] = 'utf8'; //数据库编码 $conn['DB_TABLE'] = 'table'; //需要操作的数据库表 $db = Mysql::start($conn); //数据库操作 其它操作参考【系统内置数据库操作】 $db->add($data); ``` **自定义链接数据库封装操作** ``` function M($table) { cp::re('mysql'); $conn['DB_HOST'] = '127.0.0.1'; //主机地址 本地一般采用127.0.0.1或localhost $conn['DB_PORT'] = '3306'; //数据库端口 $conn['DB_USER'] = 'root'; //数据帐户 $conn['DB_PWD'] = '123456'; //数据密码 $conn['DB_NAME'] = 'test'; //数据库名 $conn['DB_PREFIX'] = 'cp_'; //表前缀 $conn['DB_CHARSET'] = 'utf8'; //数据库编码 $conn['DB_TABLE'] = $table; //需要操作的数据库表 return Mysql::start($conn); } //数据库操作 其它操作参考【系统内置数据库操作】 M('table')->add($data); ``` **延申学习** [读取数据进行分页获取内容](读取数据进行分页.md)