Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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 MySQL存储过程仅在第一次执行时返回错误的值_Php_Mysql_Stored Procedures - Fatal编程技术网

Php MySQL存储过程仅在第一次执行时返回错误的值

Php MySQL存储过程仅在第一次执行时返回错误的值,php,mysql,stored-procedures,Php,Mysql,Stored Procedures,我的存储过程计算总数。如果我定义它并将其另存为新过程并运行它,它只会为一行返回错误的值。如果我再次运行它,它将返回正确的值。当我从php调用它时,它总是返回错误的值。此外,此错误仅发生在我的服务器(mysql 5.5.43)上,在我的本地pc上,使用wamp和mysql 5.5.24,它始终正确运行 我认为错误一定在以下程序中: create temporary table tmp2 engine=memory SELECT *, @i := @i + 1 AS teller, @sum :=

我的存储过程计算总数。如果我定义它并将其另存为新过程并运行它,它只会为一行返回错误的值。如果我再次运行它,它将返回正确的值。当我从php调用它时,它总是返回错误的值。此外,此错误仅发生在我的服务器(mysql 5.5.43)上,在我的本地pc上,使用wamp和mysql 5.5.24,它始终正确运行

我认为错误一定在以下程序中:

create temporary table tmp2 engine=memory 
SELECT
*,
@i := @i + 1 AS teller,
@sum := if(@id = id AND @projectId = project_id,@sum,0) + aantal AS totaal,
@id := id,
@projectId := project_id
FROM tmp1
CROSS JOIN (SELECT @i := 0, @id := '', @sum := 0) AS InitVarsAlias;

提前感谢。

当您打算将aantal添加到混合中时,此处是否有可能为null?不,aantal总是有一个值。我通过运行此查询解决了此问题,并将其存储在虚拟mem表中,然后再运行并将其存储在tmp2中。因此,查询将始终运行两次。当然,这不是一个好的解决方案,但现在解决了我的问题。