【发布时间】:2021-03-31 09:01:09
【问题描述】:
我在 laravel 中的项目与 MsSql 数据库中的视图进行第二次连接,我正确配置了我的 .env 和配置,但是这是内存溢出错误:
$ php artisan tinker
Psy Shell v0.10.5 (PHP 7.3.24-3+ubuntu18.04.1+deb.sury.org+1 — cli) by Justin Hileman
>>> use App\Condinvest\BoletoPropCondominio as BPC
>>> BPC::first();
Illuminate\Database\QueryException with message 'SQLSTATE[HY001] Unable to allocate sufficient memory (meudominio.com.br:5000) (severity 8) (SQL: select top 1 * from [View_Boleto_Prop_Condominio])'
>>>
在我的 php.ini 中已经更改:
memory_limit = 128M
但错误仍在继续。
我的模型大致如下所示:
BaseView.php
<?php
namespace App\Condinvest;
use Illuminate\Database\Eloquent\Model;
class BaseView extends Model
{
protected $connection = 'condinvest';
}
BoletoPropCondominio.php
<?php
namespace App\Condinvest;
class BoletoPropCondominio extends BaseView
{
protected $table = 'View_Boleto_Prop_Condominio';
protected $fillable = [
'Id_Condo_lan',
...
'Id_titular'
];
}
当我直接通过命令终端执行相同的查询时:
SELECT TOP 1 * FROM View_Boleto_Prop_Condominio;
成功返回我的数据。
谁能告诉我可能发生了什么,或者我可以如何更好地调试以了解错误所在。
编辑
>>> DB::connection('condinvest')->getConfig()['driver']
=> "sqlsrv"
【问题讨论】:
-
你把
memory_limit增加到了多少? -
我把memory_limit = -1
-
当我遇到内存问题时,将它设置为 -1 并没有解决它,即使我期待它。然后我尝试了 2G 之类的东西,错误被清除了。我并没有尝试使用您使用的软件包,但我想我至少会分享我一个月前遇到此错误的经验。
-
@MarciusLeandro 永远不要将内存限制设置为 -1,这意味着不再有限制。我认为这不是 php 内存限制,因为这会引发 php 错误而不是 sql 错误。无论如何,解决方案不应该是增加内存限制,而是减少内存使用量。
-
其他查询是否有效?
标签: php sql-server laravel tinker