小编Chr*_*ris的帖子

使用CodeIgniter将NULL插入数据库的正确方法

我有ExtJS从combofield发布数据到CodeIgniter.CodeIgniter读取发布的数据并运行db-> insert以更新mssql数据库.

问题是,如果用户没有从组合框中选择一个选项,它将被发送到CodeIgniter,则Codeignighter会将这条发布的数据作为空字符串读取并尝试将其写入数据库中的int字段,从而导致错误.

我相信我需要CodeIgniter将字符串视为NULL(如果它为空)和数字(如果是空的话).我已经尝试使用php类型juggling(int)来转换它但它使它为0.这是一个无效的值,因为它与我的数据库中我的一对多int字段中的任何选择都不匹配.

有没有办法让CodeIgniter将空字符串视为NULLS而不是空字符串?

[编辑添加代码]

{
//ExtJS combo object
xtype: 'combo',
id: 'Referrer',
store: new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({
        url: '/referrals/index.php/referrers/read',
        method: 'POST'
    }),
    reader: new Ext.data.JsonReader({
        root: 'results',
        fields: [
            {name: 'ID'},
            {name: 'Referrer'}
        ]
    })
}),
displayField: 'Referrer',
valueField: 'ID',
value: 1,
typeAhead: true,
hiddenName: 'Referrers_ID',
mode: 'remote',
triggerAction: 'all',
fieldLabel: 'Referrer',
selectOnFocus: true,
anchor: '100%'
}

//CI CODE TO GRAB FROM POST INTO AN ARRAY THEN OUT TO THE DB
public function create(){
    $data = array( …
Run Code Online (Sandbox Code Playgroud)

php sql-server codeigniter extjs

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

codeigniter ×1

extjs ×1

php ×1

sql-server ×1