我在MySQL中有一个从PHP文件运行的存储过程。只要我在存储过程中注释掉所有游标处理(除了声明),一切都很好。
但是,如果我离开open myCursor;
运行(有或没有close myCursor;
),我会收到错误'POST myphp.php net :: ERR_CONNECTION_RESET'。
光标的定义没有区别。我已经尝试将光标的选择更改为非常简单的选项。
尽管出现错误,但使用游标进行的处理仍然有效,并且存储过程会继续将其进度记录到最后。只有当它回到PHP时,它才会在没有明显原因的情况下崩溃。
我能看到的唯一可能是光标破坏结果,可能是通过产生一些警告信息,但如果是这样,我不知道哪条消息或如何处理它并且没有明显的错误消息原因,特别是因为我不必像光标上的单个Fetch
那样运行以产生问题。
以下是存储过程的运行方式:
if ($stmt2 = mysqli_prepare($con, "call mySP(?)")) {#Store statement
mysqli_stmt_bind_param($stmt2, 's', $par);
mysqli_stmt_execute($stmt2);
$result = mysqli_stmt_get_result($stmt2);
mysqli_stmt_execute($stmt2);
是我能说的最后一行。 PHP的其余部分中没有任何内容在$result = mysqli_stmt_get_result($stmt2);
之后运行。
请注意,如果在mysqli_stmt_execute($stmt2);
之后我输出mysqli_stmt_errno($stmt2).','.mysqli_stmt_error($stmt2)
我得到'0',那么mysqli_stmt_execute($stmt2);
为了完整起见,这里是用于调用PHP的javascript的摘录:
$.ajax({
type : "POST",
url : "./php/myphp.php",
cache : false,
data : {
sheet : JSON.stringify(userJson)
},
datatype : "json"
}).done(function(result) {
请帮助我,因为我正在撕裂我的头发,我找不到调试它或解决它。