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";