thinkphp 3 2 3 addAll方法的坑

2022-07-05 05:33:09 字數 762 閱讀 6763

在批量插入一組資料的時候,總是提示以下錯誤

insert value list does not match column list: 1136 column count doesn'

t match value count at row 1

核對了半天資料庫的字段和插入的資料,發現真沒問題。

然後我把要執行的sql列印出來後發現valus部分少乙個字段。

然後根據提示和方法逆向檢視**發現了問題:

mysql.class.php檔案的insertall方法存在缺陷

第120行開始:

foreach ($data as $key=>$val)elseif(is_scalar($val))

else

}}

這裡只判斷了is_array和is_scalar,然後is_array比較常用,沒啥問題,is_scalar的意思是判斷是否是乙個「標量」,然後null並不是標量,所以被跳過去了,當批量插入的時候有null則會少乙個字段。所以出現文頭的錯誤提示。

改正方法很多,比如我直接加了乙個is_null判斷,修改後的**為

foreach ($data as $key=>$val)elseif(is_scalar($val) 

||is_null($val))

else

}}

然後就一切正常了!我用的是3.2.3,其他版本沒測試!

ThinkPHP3 2 3使用分頁

todo 基礎分頁的相同 封裝,使前台的 更少 param count 要分頁的總記錄數 param int pagesize 每頁查詢條數 return think page function getpage count,pagesize 10 控制器中使用的 如下 public function...

ThinkPHP3 2 3使用分頁

thinkphp3.2.3使用分頁 首先要搞清楚的就是thinkphp3.2.3的分頁類已經被移到了think page.class.php,這是跟以前的版本有些不一樣的,使用起來還是跟以前版本差不多,但是預設的效果不敢恭維,所以最好是自己加些樣式。todo 基礎分頁的相同 封裝,使前台的 更少 p...

ThinkPHP3 2 3目錄結構

在第一次訪問應用入口檔案的時候,會顯示如圖所示的預設的歡迎頁面,並自動生成了乙個預設的應用模組home。common 應用公共模組 common 應用公共函式目錄 conf 應用公共配置檔案目錄 home 預設生成的home模組 conf 模組配置檔案目錄 common 模組函式公共目錄 contr...