Yii2 0自增主鍵查詢老是字串的原因剖析

2022-07-20 09:24:08 字數 648 閱讀 6226

【專案背景】

最近在做乙個restful風格的專案,發現有個表返回的json資料中id始終是string型別,但另乙個表的id始終是int型別。即返回的資料型別不一致。

【原因剖析】

在yii\db\schema類的getcolumnphptype函式中,這個函式決定了最終出來的資料的型別,**如下:

/*

* * extracts the php type from abstract db type.

* @param columnschema $column the column schema information

* @return string php type name

*/protected

function getcolumnphptype($column

)

elseif ($column->type === 'integer')

return

$typemap[$column->type];

}return 'string';

}

結論:如果php_int_size是4並且db表中對應的列是無符號整形的話就返回string型別.按照php.net上的解釋:php 不支援無符號整數。

mysql 主鍵自增語句 MySQL 自增主鍵

以下僅考慮 innodb 儲存引擎。自增主鍵有兩個性質需要考慮 單調性每次插入一條資料,其 id 都是比上一條插入的資料的 id 大,就算上一條資料被刪除。連續性插入成功時,其資料的 id 和前一次插入成功時資料的 id 相鄰。自增主鍵的單調性 為何會有單調性的問題?這主要跟自增主鍵最大值的獲取方式...

MySQL設定主鍵自增和非主鍵自增

mysql 每張表只能有1個自動增長字段,這個自動增長字段即可作為主鍵,也可以用作非主鍵使用,但是請注意將自動增長字段當做非主鍵使用時必須必須為其新增唯一索引,否則系統將會報錯。例如 將自動增長字段設定為主鍵 create table t1 id int auto increment primary...

yii 2 0 寫入日誌

首先,我們的 web.php 配置檔案中,更改於下 log tracelevel yii debug 3 0,targets class yii log filetarget levels error warning trace 在 levels 中,增加了 trace,使用如下 yii trace...