wex匯入mysql 資料庫操作

2021-10-18 17:53:02 字數 4790 閱讀 7841

db物件

db配置

配置檔案:/root/cfgs/boot/cfg_db.php;

表的前字尾:db_prefix-表字首,db_suffix-表字尾;

預設表字首為空,表字尾為_ys,由安裝時配置決定;

db物件

**:$db = glbdbobj::dbobj();, 或$db = db(); 即得到了乙個可操作的db物件;

呼叫外部資料

配置檔案:/root/cfgs/boot/cfg_db.php。

在檔案尾部新增類似**(鏈結織夢系統)

$_cfgs['dede_cms'] = $_cfgs;

//$_cfgs['dede_cms']['db_host'] = 'localhost';

$_cfgs['dede_cms']['db_name'] = 'dede_v998'; // 資料庫名(pdo連線不使用)

$_cfgs['dede_cms']['db_prefix'] = 'dd_';

$_cfgs['dede_cms']['db_suffix'] = '';

**:$db = glbdbobj::dbobj('dede_v998'); 或$db = db('dede_v998');

即得到了乙個可操作的織夢系統的db物件;

增刪改查

插入資料

$data['kid']=baskeyid::kidtemp();

$data['kno']='1';

$data['atime']=time();

$data['content']='[email protected]';

$db->table('xtest_keyid')->data($data)->insert();

更新資料

$data['kno']='2';

$data['content']='[email protected]';

unset($data['kid']);

$db->table('xtest_keyid')->data($data)->where("kid='2019-88-77ab'")->update();

資料庫查詢

查詢一條資料:

$info=$db->table('表名')->where($whrstr)->find();

成功返回一維陣列,否則返回false

限制字段

$info=$db->table('表名')->field('id,title')->where($whrstr)->find();

排序$info=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->find();

注意:order('id desc')逆序order('id asc')公升序

快取$info=$db->table('表名')->cache(10)->where($whrstr)->find();

cache($time) $time>0,資料快取時間,$time=0,不快取,$time=-1永久快取

查詢多條資料

$list=$db->table('表名')->where($whrstr)->select();

成功返回二維陣列,否則返回false

限制字段

$list=$db->table('表名')->field('id,title')->where($whrstr)->select();

排序$list=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->select();

限制條數

$list=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->limit(10)->select();

快取$list=$db->table('表名')->cache($time)->field('id,title')->where($whrstr)->order('id desc')->limit(10)->select();

cache($time) $time>0,資料快取時間,$time=0,不快取,$time=-1永久快取

查詢資料數量

$count=$db->table('表名')->where($whrstr)->count();

成功返回乙個整數,否則返回false

$count=$db->table('表名')->cache($time)->where($whrstr)->count();

刪除資料

$whrstr為查詢條件,可為陣列或字串,$whrstr['id']=1;

刪除成功返回影響的資料行數,否則返回false

注意,當$whrstr為空時,不會刪除資料。防止不小心把整個表的資料給刪除了

$db->table('xtest_keyid')->where("kid='2015-cr-1234'")->delete();

規範說明

如使用快取,初始化db如下:

$db = glbdbobj::dbobj(, 1);, 或$db = db(, 1);;

table('表名')

預設表名 省略前字尾;

原生的sql語句用中,使用 $db->pre/$db->ext 得到配置的表 字首/字尾;

$db->table('表名',$nofix=false)

特殊資料庫字首

$nofix===2,=> $full 加上前字尾 的字串(表名)

$nofix===1,=> 不加前字尾 返回$db;

$nofix===0,=> 加上前字尾 返回$db;

先後順序

field(),limit(),order(),cache(),table(),where()沒有先後順序之分

$whrstr條件

可為字串或陣列,如果是陣列,陣列下標表示資料庫欄位名 多個元素用and連線,

原生sql

複雜一點的sql,可以寫成原生的sql查詢條件

檢視生成的sql語句,echo $db->sql; 或者echo $db->getsql();

資料庫操作有問題時,用來檢視生成的sql語句 是否正確

運算元據庫基類

具體方法檢視/imcat/core/glib/glbdbobj.php檔案

問題與缺陷

資料庫操作:$db->操作裡面不要含有$db->操作,(少數情況下會出錯)

如:$db->table('users_uacc')->data($acc+bassql::logdata())->insert(); //

-=>改為兩句:

$dataex = bassql::logdata();

$db->table('users_uacc')->data($acc+$dataex)->insert();

設計缺陷原則上,避免使用mysql關鍵字 作為資料表的字段;本系統使用了【show/key/char】等字段:

【show】用於控制資料顯示如否,【key(wex_menu/base_paras中使用)】, 【char(inittypes/types*中使用)】;

這算是一些小缺陷,容易引起錯誤;出問題時,請按如下解決:

$list = $db->table('users_inmem')->field('uid,grade,show')->where($usql)->select();

子句修改為:->field('uid,grade,`show`')即可;

常用**

如果$sql為查詢條件,則返回二維陣列,且可以設定快取$db->cache(快取時間)->query($sql);

如果sql不是查詢條件語句,快取設定無效,返回的資料跟mysqli_query($sql)一樣

$db->query($sql);

--- 系統常用** ---

$db->table($tabid)->data(basreq::in($fm))->insert();

$db->table($tabid)->where("kid='$id'")->delete();

$db->table($tabid)->data(array('enable'=>'1'))->where("kid='$id'")->update();

$list = $db->table('base_model')->field('kid,title')->limit(3)->select(); if($list)foreach($list as $r){}}

$fm = $db->table($tabid)->where("model='$mod' and kid='$kid'")->find();

$count = $db->table('base_model')->where("pid='groups'")->count();

$sql = "select kid,title from base_model_ys where pid='groups' limit 3";

$list = $db->arr($sql);

print_r($db->fields('xtest_keyid_ys'));

print_r($db->tables());

常用sql

update users_adminer_ys set uid=concat('2010-4q-',uname)

update `users_person_ys` b inner join users_uacc_ys a on a.uname=b.uname set b.uid=a.uid;

update `dede_addonarticle` set body=replace (body,'',");

MySQL 資料庫匯出匯入操作

有時需要將 mysql 資料庫中的資料匯入到其它的資料庫中,這裡以從 ubuntu 系統的 mysql 資料庫匯出 zabbix 這個資料庫到 windows 系統中的mysql 為例。匯出資料其實非常方便,比如將 mysql 中的 zabbix 這個資料庫匯出到當前資料夾,首先切換到 root 使...

MySQL 資料庫匯出匯入操作

有時需要將 mysql 資料庫中的資料匯入到其它的資料庫中,這裡以從 ubuntu 系統的 mysql 資料庫匯出 zabbix 這個資料庫到 windows 系統中的mysql 為例。匯出資料庫 匯出資料其實非常方便,比如將 mysql 中的 zabbix 這個資料庫匯出到當前資料夾,首先切換到 ...

Mysql匯入資料庫

網上查的都是用命令列,匯入資料的,自己發現用mysql的workbench匯入非常簡單 1.在server administration中選取manage import export 2.選擇data import restore,options選取import from self containe...