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)
将引号加倍。