我正在用Codeigniter编写我的第一个程序,并遇到了问题。我将从问题的重点描述开始,如果需要,可以扩大它:
我需要为DB编写一个多维数组,并希望使用CI_DB_active_record类中的insert_batch函数来执行此操作。问题是我需要为某些字段将空值写为NULL,而其他字段需要为空字符串。当前函数用单引号包装所有值,我找不到为数据库写入指定字段的空值的方法。
我还希望增加每批记录的数量。
我看到如何扩展模型,库等,但是有没有办法在不修改核心类的情况下扩展CI_DB_active_record类?我发现这项工作的最小核心类修改量是修改DB.php文件中的以下行(将require_once文件更改为扩展CI_DB_active_record类并将CI_DB_active_record类名更改为新类的新文件名):
require_once(BASEPATH.'database/DB_active_rec'.EXT);
if ( ! class_exists('CI_DB'))
{
eval('class CI_DB extends CI_DB_active_record { }');
}
我可以做得更好吗?
答案 0 :(得分:2)
没有开箱即用的解决方案来做到这一点。你的黑客是一个合理的解决方案,如果它完成了工作,那么就可以找到它。
如果你对核心有任何改变(在AR的某些部分有足够的改进空间)那么为什么不跳上BitBucket并帮助Reactor?