微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

代码点火器活动记录查询缺少的撇号

如何解决代码点火器活动记录查询缺少的撇号

| 代码点火器吐出:
A Database Error Occurred
Error Number: 1064

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 \'TEST,`cardNumber` = 411111........11,`cardExpiry` = 1212,`authCode` = 110200,\' at line 1

UPDATE `pxpayRequest` SET `status` = \'approved\',`cardName` = Visa,`cardHolder` = VISA TEST,`dpsTxnRef` = 0000000800b51dde,`dpsMessage` = APPROVED WHERE `id` = 1
而且,很明显这是由于缺少
\'
为什么代码点火器不能正确放置这些? 这是我的代码
$id = $result->MerchantReference;
$cardName = $result->CardName;
$cardHolder = $result->CardHolderName;
$cardNumber = $result->CardNumber;
$cardExpiry = $result->DateExpiry;
$authCode = $result->AuthCode;
$dpsRef = $result->DpsTxnRef;
$dpsMessage = $result->ResponseText;

$this->db->set(\'status\',\'approved\')
         ->set(\'cardName\',$cardName)
         ->set(\'cardHolder\',$cardHolder)
         ->set(\'cardNumber\',$cardNumber)
         ->set(\'cardExpiry\',$cardExpiry)
         ->set(\'authCode\',$authCode)
         ->set(\'dpsTxnRef\',$dpsRef)
         ->set(\'dpsMessage\',$dpsMessage)
         ->where(\'id\',$id)
         ->update(\'pxpayRequest\');
您可以通过查看上面的查询来查看关联的值。 这是$ result的
print_r
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [valid] => 1
        )

    [Success] => 1
    [TxnType] => Purchase
    [CurrencyInput] => NZD
    [MerchantReference] => 1
    [TxnData1] => SimpleXMLElement Object
        (
        )

    [TxnData2] => SimpleXMLElement Object
        (
        )

    [TxnData3] => SimpleXMLElement Object
        (
        )

    [AuthCode] => 121132
    [CardName] => Visa
    [CardHolderName] => VISA CARD
    [CardNumber] => 411111........11
    [DateExpiry] => 1212
    [ClientInfo] => 125.236.220.238
    [TxnId] => 4ddd9aa1dd14c
    [EmailAddress] => SimpleXMLElement Object
        (
        )

    [DpsTxnRef] => 0000000800b5d3c9
    [BillingId] => SimpleXMLElement Object
        (
        )

    [DpsBillingId] => SimpleXMLElement Object
        (
        )

    [AmountSettlement] => 8.00
    [CurrencySettlement] => NZD
    [DateSettlement] => 20110526
    [TxnMac] => BD43E619
    [ResponseText] => APPROVED
    [CardNumber2] => SimpleXMLElement Object
        (
        )

    [IssuerCountryId] => 0
)
    

解决方法

相当奇怪:在任何最新的应正常工作的CodeIgniter上。我唯一想到的可能是数据库库无法正确识别您的数据库,或者这些变量未以某种方式被识别为字符串(因此没有发生转义)。
echo is_string($cardName);
怎么说?     ,我刚刚经历了这一点-我认为问题的一部分是simplexml返回的某些值被视为对象。不管是什么原因-您必须在插入之前将值转换为字符串。幸运的是,它非常简单,只需添加(string) 所以从这个
$cardName = $result->CardName;
对此
$cardName = (string)$result->CardName;
    ,尝试将第三个参数设置为TRUE。
$this->db->set(\'cardHolder\',$cardHolder,TRUE);
    ,我只是为此阅读了一个简单的解决方案... 我更改了var $ _escape_char的值(system / database / drivers / mysql / mysql_driver.php,第36行。 它是
var $_escape_char = \'`\';
变成
var $_escape_char = \' \';
现在就可以了...但是如果我遇到任何安全问题,我都会感到很高兴。 谢谢     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。