Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将带引号的字符串传递给oracle过程_Php - Fatal编程技术网

Php 如何将带引号的字符串传递给oracle过程

Php 如何将带引号的字符串传递给oracle过程,php,Php,我有一个接收字符串的变量,如下所示: 'BA'、'RJ'、'SC' 我需要将此格式作为字符串发送到db,但我得到了错误: PLS-00103:在预期以下情况时遇到符号“BA:),*&|=-+ 我打印$sql以查看值的变化: BEGIN TWD_WEB_CRM.PESQUISA_客户(1,'BA','RJ','SC','132','',status,:refc);结束 这就是我将php传递给过程的方式: $sql=“BEGIN TWD_WEB_CRM.PESQUISA_客户”(“.$codemp.

我有一个接收字符串的变量,如下所示:

'BA'、'RJ'、'SC'

我需要将此格式作为字符串发送到db,但我得到了错误:

PLS-00103:在预期以下情况时遇到符号“BA:),*&|=-+

我打印$sql以查看值的变化:

BEGIN TWD_WEB_CRM.PESQUISA_客户(1,'BA','RJ','SC','132','',status,:refc);结束

这就是我将php传递给过程的方式:

$sql=“BEGIN TWD_WEB_CRM.PESQUISA_客户”(“.$codemp.”、“$estados.”、“$diac.”、“$diac.”、“$dian.”、:status、:refc);END;”

变量
$estados
receive:
'BA','RJ','SC'

所以,我的问题是:

如何使用php将带有
的此类字符串传递给我的过程

我试着用
\
但没用

我错过了什么

任何问题,我的客人

谢谢

编辑

  BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES
  (

      1,
      ''BA','RJ','SC'',  // this supposed to be 1 field with strings...
      '132',
      '',
      :status,
      :refc
  ); 
  END;

在Oracle中,通过将单引号加倍来转义单引号。这将把完整的逗号分隔字符串视为一个带转义引号的字符串文字

''BA'',''RJ'',''SC''
这假设我理解正确,并且您将这些值作为字符串文本传递

最终,您的查询应该如下所示:\

BEGIN TWD_WEB_CRM.PESQUISA_CLIENTES
  (

      1,
      '''BA'',''RJ'',''SC''',  // <-- Doubled quotes inside the quoted string.
      '132',
      '',
      :status,
      :refc
  ); 
  END;
BEGIN TWD_WEB_CRM.PESQUISA_客户
(
1.

问题是,
$estados
,因为带有
'
的格式被解释为一个saparated值,但它应该是一件事。比如
开始TWD\u WEB\u CRM.PESQUISA\u客户(1,'BA','RJ','SC','132','status',:refc);END;
,'BA','RJ','SC'是一回事。@Ricardoaruda如果它应该是一个字符串,请尝试像我上面所说的那样将引号加倍。@Ricardoaruda是的。您可以使用
str_replace(“'”,“,$string)
将引号加倍。