0

我想制作一个显示在表格中的输出。

我做了一个存储过程:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `studentlist`(OUT `v_stuid` VARCHAR(10), OUT `v_stuname` VARCHAR(100), OUT `v_status` VARCHAR(20), OUT `v_email` VARCHAR(40), OUT `v_contact` VARCHAR(20), OUT `v_address` VARCHAR(100), OUT `v_class` VARCHAR(20))
begin
DECLARE v_stuid varchar(10);
DECLARE v_stuname varchar(100);
DECLARE v_status varchar(20);
DECLARE v_email varchar(40);
DECLARE v_contact varchar(20);
DECLARE v_address varchar(100);
DECLARE v_class varchar(20);
DECLARE My_Cursor CURSOR FOR 
select studentid,student_name,status,email,contact,address,classname
from student;
OPEN My_Cursor;
FETCH My_Cursor INTO v_stuid,v_stuname,v_status,v_email,v_contact,v_address,v_class;
CLOSE My_Cursor;
END$$
DELIMITER ;

当我尝试使用以下代码在我的 PHP 中运行它时:

$conn = mysqli_connect('localhost', 'root', '', 'student');

//run the store proc
$sql = "CALL STUDENTLIST(@out,@out,@out,@out,@out,@out,@out)";
$result = mysqli_query($conn,$sql) or die( mysqli_error($conn));

//loop the result set
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
echo 
"<tr>
<td>" .$row[0]."</td>
<td>".$row[1]."</td>
<td>".$row[2]."</td>
<td>".$row[3]."</td>
<td>".$row[4]."</td>
<td>".$row[5]."</td>
<td>".$row[6]."</td>

......

我收到此错误警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,while ($row....)语句中给出的布尔值。

我认为它可能与我的存储过程有关,但我不知道它有什么问题。

4

0 回答 0