我在php文件中调用了如下存储过程:
// PROCEDURE SQL
$sql2 = "SELECT * FROM tmp ORDER BY day ASC;";
//CALL WITH SESSION VARS
if(!$mysqli->query("CALL proc1('". $_SESSION['var1']." ', '". $_SESSION['var2'] ." 00:00:00','". $_SESSION['var3'] ." 00:00:00');"))
die($mysqli->error);
//EXEC SQL2
$result = $mysqli->query($sql2)
or die($mysqli->error);
$i=0;
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
//do some calculs on fetched results and get value from $row['x']
if($row['r2'] == NULL){
// SECOND PROCEDURE SQL
// note : table name and procedure name are different
$sql3 = "SELECT r2 FROM temp ORDER BY day DESC LIMIT 1;";
//CALL WITH SESSION VARS AND LARGER DATE
if(!$mysqli->query("CALL proc2('". $_SESSION['var1']." ', '2017-01-01 00:00:00','". $_SESSION['var4'] ." 00:00:00');"))
die($mysqli->error);
//EXEC
$result2 = $mysqli->query($sql3)
or die($mysqli->error);
while ($row2 = $result2->fetch_array(MYSQLI_ASSOC)) {
$value_r2 = $row2['r2'];
}
我这样做的原因是,如果第一次调用返回null,我希望更改在该调用中获取的数据的值
正如您所注意到的,我的两个过程是不同的,每个过程的表名也是不同的,所以当我加载这个代码时,如何在我的网页上显示“temp table already exists”?
编辑:
我的过程从数据库中获取结果并将数据插入临时表。临时表没有相同的名称。然后,当我调用该过程时,我对关联的临时表进行查询。
1条答案
按热度按时间vql8enpb1#
这听起来像是有什么东西坏了,或者可能是缓存问题。请尝试下列操作之一:
记住备份数据。