我已经接受了这个问题一个星期了,我的每一个理论和修复工作都没有成功。所以我来这里寻求帮助。
首先,只要客户在选择了他们想要购买的商品后点击购买按钮,就会执行此操作:
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表现不同的原因吗?