LAMP MySQL,调用存储过程时(读取通信数据包时出错)

时间:2019-09-21 21:42:37

标签: mysql lamp

我有一台Ubuntu服务器,在其中我在MySQL error.log

中收到(读取通信数据包时出错)错误。

但是只有从PHP调用存储过程(任何返回值的存储过程)时,我才会收到此错误。

我创建了一个测试过程,只是缩小了范围:

DELIMITER //
 CREATE PROCEDURE hello_world()
      BEGIN
           select "Hello World";
      END //
 DELIMITER ;

这是我的测试php代码:

<?php
     $link_id = mysqli_connect("localhost", "root", "password" )or die ("no database server");
     mysqli_select_db( $link_id,"test_db) or die ("database not found");

     $query="select 'testing';";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';

     $query="call hello_world;";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';

     $query="select 'testing';";
     echo $query.'<br>';
     $result=mysqli_query($link_id,$query)or die("Query fail: " . mysqli_error());
     $row = mysqli_fetch_row($result);
     echo  $row[0].'<br><br>';
 ?>

php显示以下内容:

select 'testing';
testing

call hello_world;
Hello World

select 'testing';
Query fail:

这是因为调用存储过程后,我立即收到(读取通信数据包时出错)错误,因此当第三个查询尝试运行时,mysql会话已经关闭。

注意:调用存储过程的查询始终有效!我总是得到该查询的结果,它只是中断了我与数据库的连接。

如何解决此问题?

0 个答案:

没有答案