qq_27107813 2016-05-08 14:28 采纳率: 0%
浏览 1556
已结题

在php中使用sql游标select将数据存入数组中

#这个用于处理游标到达最后一行的情况
DECLARE s int default 0;

#声明游标cursor_name(cursor_name是个多行结果集)
DECLARE cursor_name CURSOR FOR select NNF_ID,NNF_NAME,NNF_REALNAME,NNF_NOTICE_ID from t_notice_file;

#设置一个终止标记
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1;

#打开游标
OPEN cursor_name;

#获取游标当前指针的记录,读取一行数据并传给变量a,b
fetch cursor_name into a,b,c,d;

#开始循环,判断是否游标已经到达了最后作为循环条件
while s <> 1 do

insert into t_ehdnotice_file(id,name,original_name,create_time,ehdnotice_id,path) values(a,b,c,now(),d,'2014-04\15');

#读取下一行的数据
fetch cursor_name into a,b,c,d;
end while;

#关闭游标
CLOSE cursor_name ;

#语句执行结束
END

网上找到这段SQL使用游标的代码,不知道如何将读取的数据存入php数组中。
请大神赐教

  • 写回答

1条回答 默认 最新

  • havedream_one 2016-05-09 00:42
    关注
    BEGIN
        DECLARE var1 INT DEFAULT 0;
        DECLARE done INT DEFAULT 0;
        DECLARE cardsortID INT DEFAULT 0;
     DECLARE alart  INT DEFAULT 0;
    
        DECLARE cur CURSOR FOR (SELECT sortID, alarmCount  FROM monitoring WHERE hide=1 ORDER BY sortID ASC);
    
    
        open cur;
        FETCH cur INTO cardsortID, alart;
        WHILE done <> 1 DO 
          SELECT cardName,cardsortID,count(*) AS leftCount,alart as cardCount FROM cards 
             WHERE endDate>now() AND cardStatus=3 AND operator=cardsortID;
           FETCH cur INTO cardsortID, alart;
        END WHILE;
    CLOSE cur;
    END
     $dblink=mysqli_connect('localhost','root','root')
                or die("can not connect to mysql");
      mysqli_select_db($dblink,$db)
          or die("can not select salecards");
    
        //$query=mysqli_multi_query($dblink,"CALL proc_AlarmCount()")or die("Invalid query: " . mysqli_error());
    $query=mysqli_query($dblink,"CALL proc_AlarmCount()")or die("Invalid query: " . mysqli_error());
        //var_dump($query);
    
    if ($query) {
          $i=1;
     mysqli_next_result($dblink);
      do {  
           if ($result = mysqli_store_result($dblink)) {
                while ($row = mysqli_fetch_assoc($result)) {
    
                    var_dump($row);
                }
                mysqli_free_result($result);
            }
    printf("
    $i-----------------
    ");
    $i++;
        } while (mysqli_next_result($dblink));    
    
    
    }
    
    //$row=mysqli_fetch_row($result);
    //var_dump($row);
    
    mysqli_close($dblink);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接