INSERT INTO语句失败

时间:2016-07-22 07:33:46

标签: php sql

我已经接受了这个问题一个星期了,我的每一个理论和修复工作都没有成功。所以我来这里寻求帮助。

首先,只要客户在选择了他们想要购买的商品后点击购买按钮,就会执行此操作:

    if(isset($_POST['shopBuyItem'])) {
                if( @odbc_exec($odbc_connect, $strUpdateBalance)
                    AND
                        @odbc_exec($odbc_connect, '
                            INSERT INTO [' . $_CONFIG['db_databases']['web'] . '].dbo.[LOG_PURCHASES] (
                                item,
                                itemname,
                                itemcount,
                                itemcurrency,
                                itemworth,
                                account,
                                datetime
                            ) VALUES (
                                ' . cleanSqlInput($mixedSelectedItemDetailsArray['itemid']) . ',
                                \'' . cleanSqlInput($mixedSelectedItemDetailsArray['name']) . '\',
                                ' . cleanSqlInput($mixedSelectedItemDetailsArray['count']) . ',
                                ' . $intGetCurrentCurrency . ',
                                ' . cleanSqlInput($mixedSelectedItemDetailsArray[$intWorthColumnHelper]) . ',
                                \'' . cleanSqlInput($_SESSION['user']) . '\',
                                \''. date($_CONFIG['web_date_format']['dbDatetime']) .'\'
                            )
                        ')
                    AND
                        send_item($intCharacterID, $mixedSelectedItemDetailsArray['itemid'], $mixedSelectedItemDetailsArray['count'])
                ) {
                    echo createMessage($_LANG['success_item_bought'], 'success');
                }
                else {
                    echo createMessage($_LANG['error_item_could_not_be_sent'], 'fail');
                }
            }

这是send_item函数:

function send_item($playerid, $itemid, $quantity) {
    global $odbc_connect, $_CONFIG;

    if(is_numeric($playerid) AND is_numeric($itemid) AND is_numeric($quantity)) {
        if( @odbc_exec($odbc_connect, '
            INSERT INTO [' . $_CONFIG['db_databases']['chr'] . '].dbo.[ITEM_SEND_TBL] (
                m_idPlayer,
                serverindex,
                Item_Name,
                Item_count,
                idSender
            ) VALUES (
                \''.$playerid.'\',
                \'01\',
                \''.$itemid.'\',
                \''.$quantity.'\',
                \'0000000\'
            )
        ')) {
            return true;
        }
        else {
            return false;
        }
    }
    else {
        return false;
    }
}

它只会返回false并且要插入数据库中的值不存在,所以我假设它是因为INSERT INTO语句对吗?问题是,我之前没有触及任何关于此的代码,而这恰好发生了。但是,它与sql server有连接,因为数据库中的项只能被提取而没有任何问题。只是INSERT INTO的功能有问题。你们有什么想法可能有什么不对吗?

*上周,我使用过这种ram清洁剂,你的记忆力已经耗尽。 Reference

这可能是sql表现不同的原因吗?

0 个答案:

没有答案