Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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发送到postgres函数_Php_Arrays_Postgresql - Fatal编程技术网

将字符串数组作为参数从php发送到postgres函数

将字符串数组作为参数从php发送到postgres函数,php,arrays,postgresql,Php,Arrays,Postgresql,我试图调用postgresql函数来更新表。当我使用SQL编辑器运行以下查询时,它工作得非常好 SELECT document.update_doc_attrib_on_opportunity( 8, 'OPP', 1069701, array['OWNER','SOURCE','PRIORITY'], array['ERP','Unknown ERP','Medium'] ); 但当我尝试从php端类似地调用它时,就像这样 $query_insert_use_doc_attribs

我试图调用postgresql函数来更新表。当我使用SQL编辑器运行以下查询时,它工作得非常好

SELECT document.update_doc_attrib_on_opportunity(
    8, 'OPP', 1069701, array['OWNER','SOURCE','PRIORITY'], array['ERP','Unknown ERP','Medium']
);
但当我尝试从php端类似地调用它时,就像这样

$query_insert_use_doc_attribs = 
$dbconn->prepare("SELECT document.update_doc_attrib_on_opportunity(
    8, 'OPP', 1069701, array['OWNER','SOURCE','PRIORITY'], array['ERP','Unknown ERP','Medium']
  )
");
$query_insert_use_doc_attribs->execute();
它不工作,给出错误代码25P02=>“错误:当前事务中止,在事务块结束前忽略命令”

我想我发送的数组格式不对,但不确定

准确地说,这是我的函数代码-

CREATE OR REPLACE FUNCTION document.update_doc_attrib_on_opportunity(p_org_id numeric, p_document_code character varying, p_document_no numeric, p_doc_attrib_code character varying[], p_doc_attrib_value character varying[])
RETURNS integer AS
$BODY$
DECLARE
  v_doc_no integer;
  v_doc_column character varying;
  v_use_doc_material_col_name character varying;
  v_query_string character varying;
  -- v_query_string1 character varying;
  no_of_docs integer;
  owner_id_attrib character varying;
  v_user_id integer;
  i integer; 

BEGIN

  FOR i IN 1 .. array_upper(p_doc_attrib_code, 1)
  LOOP
    v_query_string := 'UPDATE use_doc_attribute
                  SET attrib_value = ''' || p_doc_attrib_value[i] || '''
                WHERE org_id = ' || p_org_id || '
                      AND document_no = ' || p_document_no || '
                      AND document_code = ''' || p_document_code || '''
                      AND attrib_code = ''' || p_doc_attrib_code[i] || '''';
    EXECUTE v_query_string;
  END LOOP;

  RETURN p_document_no;

  EXCEPTION
    WHEN OTHERS THEN
        RAISE EXCEPTION USING ERRCODE=SQLSTATE,MESSAGE=SQLERRM;

END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
  ALTER FUNCTION document.update_doc_attrib_on_opportunity(numeric, character varying, numeric, character varying[], character varying[])
  OWNER TO "ERP";

您用来管理PostgreSQL连接的PHP类是什么?