Php Laravel 5.3中的内存不足错误

Php Laravel 5.3中的内存不足错误,php,mongodb,laravel,memory,special-characters,Php,Mongodb,Laravel,Memory,Special Characters,我报告了一个关于Laravel 5.3/Jesenger/MongoDB 3.0的问题。 在mongodb中保存或更新带有特殊字符(如“°”)的字段时会出现此问题,它总是导致“内存不足”错误 我的问题是如何转换特殊字符,以便将它们安全地推送到数据库中。 注意:我正在批量插入和更新大约30000条记录,一个好的解决方案可能会考虑到这一点 // Code Sample <?php class Products extends Jessenger\Mongodb\Eloquent\Model

我报告了一个关于Laravel 5.3/Jesenger/MongoDB 3.0的问题。 在mongodb中保存或更新带有特殊字符(如“°”)的字段时会出现此问题,它总是导致“内存不足”错误

我的问题是如何转换特殊字符,以便将它们安全地推送到数据库中。 注意:我正在批量插入和更新大约30000条记录,一个好的解决方案可能会考虑到这一点

// Code Sample
<?php 
class Products extends Jessenger\Mongodb\Eloquent\Model
{

}
?>
$product = new Products();
$product->name = 'Akara';
$product->sku = 'naija001';
$product->description = 'special characters like °ó in mongodb';
$product->save(); // Throws allowed memory size of 1392394984 bytes 
                  // exhausted (tried to allocate 2195914) note that 
                  // allowed memory size is greater than the allocated size

您是在创建一个运行update语句的构建器,还是将数千个模型加载到内存中并循环更新每个模型?在没有代码示例的情况下,我不清楚“批插入”是什么意思。导致内存不足问题的不是批处理,即使它只是一条记录,一旦该记录至少有一个特殊的非UTF字符,它就会抛出错误。。。我想保存发送的任何内容,但由于该错误,我将不得不转换为更安全的字符。我不希望转换器有太多的进程,这可能会进一步延长我已经很长的处理时间,这就是为什么我把注释。。。感谢使用
utf8\u encode(str)
对我有效,如果有更好的解决方案,请发布,我需要在保存之前在所有记录字段上显式调用此函数,而可能是千分之一包含特殊的非UTF字符。
// Code Sample
<?php 
class Products extends Jessenger\Mongodb\Eloquent\Model
{

}
?>
$product = new Products();
$product->name = 'Akara';
$product->sku = 'naija001';
$product->description = 'special characters like °ó in mongodb';
$product->save(); // Throws allowed memory size of 1392394984 bytes 
                  // exhausted (tried to allocate 2195914) note that 
                  // allowed memory size is greater than the allocated size
$product = new Products();
$product->name = 'Akara';
$product->sku = 'naija001';
$product->description = utf8_encode('special characters like °ó in mongodb');
$product->save(); // Saved successfully