mysql过程只返回一行/第一行

时间:2014-10-14 11:51:16

标签: php mysql stored-procedures

我现在尝试100次,找出我的代码仅作为第一行输出的原因。我做了一个选择所有产品的程序,我以这种方式在php中调用它:

$query      = "CALL create_helper()";
$exec       = mysql_query( $query, $connexion );

while($row = mysql_fetch_row($exec)) {
   var_dump(  $row  );
}


CREATE PROCEDURE create_helper ()
BEGIN
  DECLARE prod CURSOR FOR SELECT id FROM pC;
  ...
  OPEN prod;
   pd_loop: LOOP
      FETCH pd INTO id_s;
         IF finished = 1 THEN 
            LEAVE pd_loop;
         END IF;
         SELECT name, ag, pdt, pname FROM clt WHERE id = id_s;
         ...
      END LOOP pd_loop;
   CLOSE prod;
END;

mysql下的过程工作正常,但唯一和一个问题是在php中。它始终显示第一行。

1 个答案:

答案 0 :(得分:-1)

Try it

返回与获取的行对应的数字字符串数组,如果没有其他行,则返回FALSE。

mysql_fetch_row()从与指定结果标识符关联的结果中提取一行数据。该行作为数组返回。每个结果列都存储在一个数组偏移量中,从偏移量0开始。

mysql_fetch_array()

Fetch a result row as an associative array, a numeric array and also it fetches by both associative & numeric array.
<?php
$query      = "CALL create_helper()";
$exec       = mysql_query( $query, $connexion );

while($row = mysql_fetch_array($exec)) 
{
  var_dump($row);
}
?>