Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Codeigniter和PHP更新SQL数据库_Php_Sql_Forms_Codeigniter - Fatal编程技术网

通过Codeigniter和PHP更新SQL数据库

通过Codeigniter和PHP更新SQL数据库,php,sql,forms,codeigniter,Php,Sql,Forms,Codeigniter,我试图通过控制器将一些数据从视图提交到模型,但它不会做任何事情 在视图中,我有一个表单,可以向控制器提交一些数据 控制员: if(isset($POST['CNE'])) { $Craftname=$_POST['Str'].$_POST['Dex'].$_POST['Rec'].$_POST['Int'].$_POST['Wis'].$_POST['Luc']; $Craftname.=$_POST['HP'].$_POST['M

我试图通过控制器将一些数据从视图提交到模型,但它不会做任何事情

在视图中,我有一个表单,可以向控制器提交一些数据

控制员:

if(isset($POST['CNE']))
        {
            $Craftname=$_POST['Str'].$_POST['Dex'].$_POST['Rec'].$_POST['Int'].$_POST['Wis'].$_POST['Luc'];
            $Craftname.=$_POST['HP'].$_POST['MP'].$_POST['SP'].$_POST['Enchant'];
            $update = array(
                'ItemID' => $_POST['ItemID'],
                'Type' => $_POST['Type'],
                'TypeID' => $_POST['TypeID'],
                'Gem1' => $_POST['Gem1'],
                'Gem2' => $_POST['Gem2'],
                'Gem3' => $_POST['Gem3'],
                'Gem4' => $_POST['Gem4'],
                'Gem5' => $_POST['Gem5'],
                'Gem6' => $_POST['Gem6'],
                'Craftname' => $Craftname,
                'Count' => $_POST['Count']
            );

            $this->item_edit->updateItem($update, $_POST['ItemUID']);
        }
模型呢

function updateItem($update, $uid)
{
    $this->db->where('ItemUID', $uid);
    $this->db->update('PS_GameData.dbo.CharItems' ,$update);        
}
提交时,视图显示发布的数据,如下所示

Name    Value
ItemName    Dreamy Vallum Helmet
ItemUID 4513324807718567936
ItemID  16052
Type    16
TypeID  52
Gem1    7
Gem2    0
Gem3    0
Gem4    0
Gem5    0
Gem6    0
Str 06
Dex 00
Rec 00
Int 00
Wis 05
Luc 04
HP  00
MP  00
SP  00
Enchant 00
Count   1

但是数据也不会被提交到数据库中。。刷新时,数据显示与以前一样。它根本不会提示我任何错误。也许有人能帮我解决这个问题。

首先要注意区分大小写,而如果数据库中的所有字段都很小,那么所有数组键都应该很小,依此类推


另外,您应该只写表名。

我已通过在控制器内的一个单独函数中添加if isset语句并以action=“controller/function\u name”的形式进行设置来修复它,现在它可以工作了。

系统在尝试更新该记录时会产生什么错误?大多数调试都是关于查找错误的。我打赌你的列不接受空值,并且你的一些post数据没有设置。系统不会提示任何错误,Firebug或其他调试器也不会。该表确实不接受空值,但上面的值都不是空值,因为它们使用默认的0和00,我使用了mssql驱动程序和php的这种方法,它可以工作,但在codeigniter(MVC patern)中,我很新,可能我在查询中做了一些错误的事情,因为在这篇文章之前,还有两篇文章,一个userid和itemid,并使用相同的方法,它们可以工作,但此表单不能。Firebug用于调试客户端代码,而不是PHP。解决问题的第一步是让错误报告正常工作。所有字符都与使用列名字符大小写的数据库结构相匹配,我已经检查了它们,它们确实匹配。对于表名,我不能只使用表名,因为我有多个包含信息的数据库,我必须将其指向正确的方向。