tp5遇到的一些問題記錄

2021-10-01 10:51:18 字數 1116 閱讀 4336

1.$acc = db(『article_cate』)->where(『updatetime』,『exp』,』>addtime-5』)->select();

使用exp 方法可以使用sql的語法和函式,就可以比較一條表內的兩個欄位的值的大小

2. $list =db(『article』)->where(『cateid!=2』)->field(『ifnull(cateid,"") as cateid』 )->select();

tp5查詢的時候給為null的字段賦值的方法

3.not exists 用tp5的寫法

$sql1 = db(『article』)->alias(『b』)->where(『a.id=b.cateid』)->buildsql();

$list = db('article')->alias('a')->where("not exists($sql1)")->select();
4.tp5.1出現事務未報錯,但是資料庫沒有操作成功的情況

出現錯誤時的**:

$res = db::name('connect')->insertgetid($data);

db('con_tag')->insert(['tag_id'=>1,'con_id'=>$res]);

修改後成功的**:

$res = db::name('connect')->insertgetid($data);

db::name('con_tag')->insert(['tag_id'=>1,'con_id'=>$res]);

1個是用db類進行的新增,乙個是用db助手函式的新增。經測試發現是因為同時用了db類和db助手函式,db類先連線資料庫,然後db助手函式再次連線資料庫,導致了db類連線資料庫的無效。如果正常操作是按照先後順序插入資料庫的,兩條操作都可以成功,但是在事務中,是兩條操作都已經進行了,但是沒運算元據庫,先進行的事務的操作,導致事務進行完了但是db類的連線資料庫就被重置了,所以出現了第一條新增的失敗和第二條新增的成功。而且db助手函式的sql報錯不會導致事務回滾,即雖然使用了事務但是實際上事務並沒有生效。

最後再說一下**的規範問題,使用推薦要麼使用db類,要麼使用db助手函式,一旦混用將會給您的開發帶來很多不必要的麻煩。

Eclipse一些問題記錄

eclipse使用過程中會出現一些問題,remark一下,將來遇到問題可以回來查詢 1 有些web專案匯入eclipse工作區中會被錯誤的識別為非web專案,這樣的話你就不能在eclipse中使用jsp容器來啟動那個專案,很煩人 解決方法 可以使用eclipse提供的功能來將那個專案convert ...

Ogg 一些問題記錄

map sycw.tablename,target sycw.tablename,filter getenv transaction csn 1626353633 11g的ogg,需要使用雙引號 transaction csn 如果使用的是12c的ogg使用單引號.在一次借已存在抽取程序,新增投遞程...

安裝freeswitch 遇到的一些問題記錄

centos 7.6 安裝freeswitch1.6.20 參考 you must install libopus dev to build mod opus.stop.報錯you must install libopus dev to build mod opus.stop.但確實已經 yum 安...