Php 阿尔德尔。现在错误是:数组([0]=>HY000[1]=>-204[2]=>动态SQL错误SQL错误代码=-204过程未知SP_CLINIC_ID位于第1行第18列)致命错误:调用booleanOk上的成员函数execute()。我改变了答案。有人能帮我解

Php 阿尔德尔。现在错误是:数组([0]=>HY000[1]=>-204[2]=>动态SQL错误SQL错误代码=-204过程未知SP_CLINIC_ID位于第1行第18列)致命错误:调用booleanOk上的成员函数execute()。我改变了答案。有人能帮我解,php,stored-procedures,pdo,firebird,Php,Stored Procedures,Pdo,Firebird,阿尔德尔。现在错误是:数组([0]=>HY000[1]=>-204[2]=>动态SQL错误SQL错误代码=-204过程未知SP_CLINIC_ID位于第1行第18列)致命错误:调用booleanOk上的成员函数execute()。我改变了答案。有人能帮我解决这个问题吗?我卡住了。我无法获取“准备工作”。@SLakshmi显示您的存储过程的代码,现在我们不知道它的签名到底是什么。我尝试使用不带括号的代码。但是现在,错误是数组([0]=>HY000[1]=>-204[2]=>Dynamic SQL


阿尔德尔。现在错误是:数组([0]=>HY000[1]=>-204[2]=>动态SQL错误SQL错误代码=-204过程未知SP_CLINIC_ID位于第1行第18列)致命错误:调用booleanOk上的成员函数execute()。我改变了答案。有人能帮我解决这个问题吗?我卡住了。我无法获取“准备工作”。@SLakshmi显示您的存储过程的代码,现在我们不知道它的签名到底是什么。我尝试使用不带括号的代码。但是现在,错误是数组([0]=>HY000[1]=>-204[2]=>Dynamic SQL error SQL error code=-204 Table unknown SP_CLINIC_ID位于第1行第18列)致命错误:在Boolean上调用成员函数execute()。我尝试了吗?占位符。现在错误是:数组([0]=>HY000[1]=>-204[2]=>动态SQL错误SQL错误代码=-204过程未知SP_CLINIC_ID位于第1行第18列)致命错误:调用booleanOk上的成员函数execute()。我改变了答案。有人能帮我解决这个问题吗?我卡住了。我无法获得“准备工作”。@SLakshmi显示您的存储过程的代码,现在我们不知道它的签名是什么。唉,我尝试过这个。现在错误是:数组([0]=>HY000[1]=>-204[2]=>Dynamic SQL error SQL error code=-204 Table unknown SP_CLINIC_ID位于第1行第19列)致命错误:使用
PDO->query(“从SP_CLINIC_ID中选择MAXID”)调用booleanTry does上的成员函数execute()做任何改变,即这次不要使用prepared语句。这是相同的-204表未知错误。如果我使用括号,它是-104令牌未知错误,我尝试了这个。现在错误是:数组([0]=>HY000[1]=>-204[2]=>Dynamic SQL error SQL error code=-204 Table unknown SP_CLINIC_ID位于第1行第19列)致命错误:使用
PDO->query(“从SP_CLINIC_ID中选择MAXID”)调用booleanTry does上的成员函数execute()做任何改变,即这次不要使用prepared语句。这是相同的-204表未知错误。如果我使用括号,它是-104令牌未知错误
$sqlproc = "select out1 from SP_CLINIC_ID()";

// execute the stored procedure
$stmt = $pdo->prepare($sqlproc);
$stmt->execute();
CREATE PROCEDURE SP_CLINIC_ID
RETURNS(
  MAXID VARCHAR(10))
AS
DECLARE VARIABLE temp_char CHAR(10);
DECLARE VARIABLE temp_id INTEGER;
BEGIN
  /* Procedure body */

  select MAX(CLINIC_id) from COVER_SHEET into MAXID;

  select SUBSTRING(:MAXID from 4 for CHAR_LENGTH(:MAXID)) 
  from rdb$database into temp_char ;

  select cast(:temp_char as NUMERIC) from rdb$database into temp_id;

  temp_id = temp_id + 1;

   if ( temp_id < 10) THEN
  BEGIN
    maxid = 'REG000000'|| temp_id;
  END

  else if ( temp_id < 100) THEN
  begin
  maxid = 'REG00000'|| temp_id;
  end  


  else if ( temp_id < 1000) THEN
  begin
  maxid = 'REG0000'|| temp_id;
  end  

  else if ( temp_id < 10000) THEN
  begin
  maxid = 'REG000'|| temp_id;
  end  

  ELSE if ( temp_id < 100000 ) THEN
  begin
  maxid = 'REG00'|| temp_id;
  end  

  ELSE if ( temp_id < 1000000) THEN
  begin
  maxid = 'REG0'|| temp_id;
  end  

  ELSE if ( temp_id < 10000000) THEN
  begin
  maxid = 'REG'|| temp_id;
  end  

  SUSPEND;
END;
<?php
 $stmt = $dbh->prepare("CALL sp_returns_string(?)");
 $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 

 // call the stored procedure $stmt->execute();

 print "procedure returned $return_value\n"; ?>
$sqlproc = "select MAXID from SP_CLINIC_ID";