【问题标题】:Update SQL Database via Codeigniter and PHP通过 Codeigniter 和 PHP 更新 SQL 数据库
【发布时间】:2016-02-13 02:26:43
【问题描述】:

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

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

控制器:

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

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

【问题讨论】:

  • 尝试更新该记录时系统产生的错误是什么?大多数调试都是为了找到错误。我敢打赌,您的列不接受空值,并且您的某些帖子数据未设置。
  • 系统不提示任何错误,无论是Firebug还是其他调试器。该表确实不接受 NULL 值,但以上都不是空值,因为它们使用默认的 0 和 00,我将此方法与 mssql 驱动程序和只是 php 一起使用,它可以工作,但在 codeigniter(MVC 模式)中我很新,也许我在查询中做错了,因为在此 POST 发生之前还有 2 个帖子,用户 ID 和 itemid 并使用相同的方法,它们有效,但此表单无效。
  • Firebug 用于调试客户端代码,而不是 PHP。解决问题的第一步是让错误报告正常工作。stackoverflow.com/questions/5911964/…

标签: php sql forms codeigniter


【解决方案1】:

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

你也应该只写表名

【讨论】:

  • 所有字符都与他们使用的列名字符大写的数据库结构相匹配,我已经检查过它们,它们确实匹配。对于表名,我不能只使用表名,因为我有多个包含信息的数据库,我必须将其指向正确的方向。
【解决方案2】:

我已经通过在控制器内部的一个单独函数中添加 if isset 语句并以 action="controller/function_name" 的形式设置它来修复它,它现在可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多