THINKPHP 5.1.29 buildsql() 严重bug

浏览:719 发布日期:2018/11/25
5.0.0 - 普通 - 已关闭
例如我写了如下语句
$subQuery1=$database->table('表A')->field('字段A')->buildSql();
$result['rows'] = $database->table('表A')->select();
return json ($result);

最终返回的结果类似
"SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY rand()) AS ROW_NUMBER FROM (SELECT [fnumber] FROM ( SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY rand()) AS ROW_NUMBER FROM (SELECT [fnumber] FROM [t_ICItem]) AS thinkphp) AS T1 ) a) AS thinkphp) AS T1"
难道不应该返回最终查询数据库结果集,怎么返回构建的查询数据库语句?
就是只要我代码任何地方有写->buildSql();无论其他地方是否有利用子查询,最终返回的结果都是完整的SQL语句文本,而不是理论上查询数据库内容的数据。

把$subQuery1=$database->table('表A')->field('字段A')->buildSql(); 进行注释,最终返回的结果即为正常的结果。
我的环境是微软SQL SERVER 链接。PHP 7.1 。另外相同的代码在THINKPHP5.0版本可以正常读取数据,thinkphp5.1最新版本却不能。
评论(
后面还有条评论,点击查看>>