我确信这是一个非常简单的问题,就像一个放错地方的引用,但我完全被难住了。我正在使用更新查询将购物车数据输入mysql表,并且在卡余额方面遇到了一些主要问题。mysql表中的列称为BalanceCurrent,它是一个十进制数(18,2)。在我的php代码中(这是一个定制的Joomla组件,因此有一些Joomla对象和方法,如JFactory和quote),下面是我要做的:
$rightNow = date("YmdHis");
$db =& JFactory::getDBO();
$query = "update arrc_Voucher set BalanceCurrent = " . $db->quote(number_format($this->balanceRemaining,2)) . ", UpdateDT = ".$db->quote($rightNow). " where VoucherNbr = ".$db->quote($this->voucherNbr);
error_log("update query: ".$query);
$db->setQuery($query);
if (!$db->query()) error_log("error inside updateVoucher: ".$db->stderr());
问题是:$db->报价(数字)格式($this->平衡器(2)。不带引号(使用$db创建->引用周围的值)我得到一个mySQL错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '950.00, UpdateDT = '20100813150330' where VoucherNbr = '1142100120514884'' at line 1 SQL=update arrc_Voucher set BalanceCurrent = 4,950.00, UpdateDT = '20100813150330' where VoucherNbr = '1142100120514884'
使用引号表示没有错误,这是产生的SQL语句(打印到错误日志):
update query: update arrc_Voucher set BalanceCurrent = '4,950.00', UpdateDT = '20100813150508' where VoucherNbr = '1142100120514884'
有什么想法吗?这真是让我难受。