Query 查询不兼容 PHP 8.1.7 吗? [ 2.0 版本 ]
$result = (new Query())
->from('{{%draten_map}}')
->where(["[[tname]]" => ['data0001','data0002']])
->andWhere(['<>', 'cn_title', ''])
->all(Yii::$app->erp);
以上是一个很普通的查询代码在php8以下是不报错的,但是我最近升级到php8.1.7之后报如下错误:
Error: mb_stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated
2022-06-29 09:48:46 [-][-][-][error][yii\base\ErrorException:8192] yii\base\ErrorException: mb_stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /data/www/back/vendor/yiisoft/yii2/db/Schema.php:461
Stack trace:
#0 /data/www/back/vendor/yiisoft/yii2/db/Schema.php(461): yii\console\ErrorHandler->handleError(code: '8192', message: ''mb_stripos(): ...', file: ''/data/www/back...', line: '461')
#1 /data/www/back/vendor/yiisoft/yii2/db/Schema.php(461): ::mb_stripos(haystack: 'NULL', needle: ''odbc:'')
可以看出是/data/www/back/vendor/yiisoft/yii2/db/Schema.php:461
的 mb_stripos
函数第一个值传入了 null
导致的
源是一获取DSN字符串
if (mb_stripos($this->db->dsn, 'odbc:') === false && ($value = $this->db->getSlavePdo()->quote($str)) !== false) {
return $value;
}
有高手帮忙分析下吗
xjcallen 补充于 2022-06-29 11:15
只要不加条件,或者条件是整数类型就不报错,这是怎么回事
共 2 个回答
xjcallen 东莞
注册时间:2017-01-10
最后登录:2022-06-30
在线时长:6小时36分
最后登录:2022-06-30
在线时长:6小时36分
- 粉丝0
- 金钱175
- 威望0
- 积分235