【问题标题】:How to insert Special Characters from PHP in Oracle?如何在 Oracle 中插入 PHP 中的特殊字符?
【发布时间】:2012-04-13 11:34:28
【问题描述】:

我想在 oracle 表中插入带有特殊字符的数据。 我的代码是这样的-:

$query1 ="INSERT INTO sample(po_number , created_at , customer_firstname , customer_lastname , customer_email , 
shipping_description , ship_to_firstname, ship_to_lastname, ship_to_company, ship_to_street, ship_to_city, ship_to_country_id, ship_to_postcode, ship_to_telephone, increment_id) VALUES(".$result_str_order.")"; 


where $result_str_order = '100','21-Mar-2011','Sam','Right','sam.right@sasmple.com','Flight','Samy',
'RTR','SR INC','222,M.G.Bank's-Pipeline/Rd','Newyork','US','411230','999856230','20000507'

现在,如果是 ship_to_street,我需要插入 222,M.G.Bank's-Pipeline/Rd 但是它包含特殊字符,例如,',-,/等。所以如何在oracle db中插入特殊字符?

【问题讨论】:

  • 您问的是 PHP 还是 Oracle DB?如果是 Oracle,那么您需要在需要 ' 的任何地方使用 ''

标签: php oracle insert oracle11g special-characters


【解决方案1】:

您需要转义的唯一字符是'(因为您使用单引号作为字符串分隔符)。那就是:

$query1 ="INSERT INTO sample(po_number , created_at , customer_firstname , customer_lastname , customer_email , 
shipping_description , ship_to_firstname, ship_to_lastname, ship_to_company, ship_to_street, ship_to_city, ship_to_country_id, ship_to_postcode, ship_to_telephone, increment_id) VALUES(".$result_str_order.")"; 


where $result_str_order = '100','21-Mar-2011','Sam','Right','sam.right@sasmple.com','Flight','Samy',
'RTR','SR INC','222,M.G.Bank\'s-Pipeline/Rd','Newyork','US','411230','999856230','20000507'

【讨论】:

  • 那么如何逃避或告诉我确切的答案。因为我无法在 oracle 中插入数据?我应该尝试什么功能来逃避 ' .
  • 只需在它前面加一个斜线/',或者在它前面插入另一个单引号。 ''
  • 斜线在 Oracle 中不起作用。也不会反斜杠。你需要加倍引号。
【解决方案2】:

使用 Replace 方法(在您的变量上,而不是整个查询上)复制单引号。

【讨论】:

    【解决方案3】:

    我也有同样的问题。我想选择这个■××特殊字符作为条件。

      SELECT * 
      FROM tablename
      WHERE table = '■××'
    

    我使用 PHP MMSQL 和 oracle dB。为了解决这个问题,我使用了十六进制转换 RAWTOHEX

    SELECT * 
    FROM tablename
    WHERE RAWTOHEX(table) = '81A1817E817E' --this is the hex for symbol above
    

    【讨论】:

      【解决方案4】:

      您可以使用带引号的字符串,例如 q'[$visitComment]' 其中 $visitComment 是一个包含特殊字符串的变量。

      或者你可以在外部绑定 插入样本(列)值(:columnval); oci_bind_by_name($result, ':columnval',$string);

      其中 $result 是 $result = oci_parse($conn, $query);

      注意:- 这仅适用于包含字符串的变量。

      【讨论】:

        猜你喜欢
        • 2011-02-24
        • 2019-08-24
        • 1970-01-01
        • 2014-07-14
        • 1970-01-01
        • 2014-11-17
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多