通过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。解决问题的第一步是让错误报告正常工作。所有字符都与使用列名字符大小写的数据库结构相匹配,我已经检查了它们,它们确实匹配。对于表名,我不能只使用表名,因为我有多个包含信息的数据库,我必须将其指向正确的方向。