top-think / think-orm

Think ORM——the PHP Database&ORM Framework
Apache License 2.0
416 stars 173 forks source link

修复 autoInsIDType函数 数据库无自增主键情况下报错 Illegal offset type #601

Closed suanju closed 2 months ago

suanju commented 2 months ago

问题环境:

  1. PHP:8.0.2 2.MySQL 8:8.0.12 3.ThinkPHP:8.0 4.Think-ORM:3

数据库表结构 image

CREATE TABLE `user` (
  `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `create_time` int(11) NOT NULL )
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

ALTER TABLE `user`
  ADD PRIMARY KEY (`name`);

控制器代码 image

报错: image

问题原因 $pk = $query->getAutoInc(); var_dump($pk)

没有自增主键返回的表结构数组 image

上层代码 getTableInfo函数 image

问题修复:添加判断无自增主键情况直接返回 image