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

问题描述

在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-0415');

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

#关闭游标
CLOSE cursor_name ;

#语句执行结束
END

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

解决方案

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);
时间: 2024-10-31 22:27:35

在php中使用sql游标select将数据存入数组中的相关文章

oracle11g-使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存

问题描述 使用sql语句select插入数据时怎么用行号补0为流水号做完单号保存 使用select语句像某个表中插入数据,表的单号要为该语句的ItemCode的值+5位流水号.流水号的规则是查询出来的"RowNum"的值自动补0为5为流水号.怎么出入,查询数据如图 解决方案 新增一列numerical order 类型为字符串 然后写个方法计算numerical order ,insert进去. 但只用sql语句的话,还没想到. 解决方案二: 试试这个: select itemcode

文件中储存SQL,IO读取 和 从数据库中读取SQL 哪一种更可取?

问题描述 文件中储存SQL,IO读取 和 从数据库中读取SQL 哪一种更可取?效率上有什么意见吗? 问题补充:SQL复杂度是比较高需要达到的目的是SQL能手工维护,不在代码中写死:1个方法就是存在文件里,需要的时候去IO读取2个就是存在数据库里,需要的时候从DB取出来2种方法出现异常的情况怎么办.有没有什么限制呢/ 解决方案 如果只是简单的读取sql语句,当然从文件中读取来得方便,便是如果要快速定位之类的,它就不占优势.解决方案二:读文件效率高,谁没事会删除你sql文件,很多框架sql都是放到文

如何数据库中数据存到数组中

问题描述 请问如何把数据库中的数据存到数组中,试了几种方法总是出错,希望能看一下demo片段 解决方案 1.你把从数据库中获取的list做个for循环,在循环的过程中,每次循环将list中一条数据插入到数组中2.可以使用追加的方式进行:List arr =new ArrayList();for(int i=0;i<list.size;i++){ arr.add(list.get(i));}办法有很多种的,看个人喜好了解决方案二:我给一个.net的代码吧!!分两种情况回答吧!!一如果你查询的记录中

c语言 把邻接矩阵的相关数据存入文件中

问题描述 c语言 把邻接矩阵的相关数据存入文件中 MGraph CreatMG(MGraph g) { int i,j,k,n; cout<<"输入顶点数和边数"; cin>>g.n>>g.e; for(i=0;i<g.n;i++) { cout<<"序号为"<<i<<"的值"; cin>>g.vexs[i].data; g.vexs[i].no=i; }

js拆分字符串并将分割的数据放到数组中的方法

  这篇文章主要介绍了js拆分字符串并将分割的数据放到数组中的方法,涉及javascript中split方法及数组的操作技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 var splitArray = new Array(); var string="太平洋.大西洋.印度洋.北冰洋"; var regex = /./; splitArray=string.split(regex); for(i=0; i < splitArray.length; i++){ docum

link中如何混编两个不同的数组中的数据,得到一个全新的毫无关联的结果?

问题描述 link中如何混编两个不同的数组中的数据,得到一个全新的毫无关联的结果? link中如何混编两个不同的数组中的数据,得到一个全新的毫无关联的结果? 解决方案 比如 int[] a = {1,2,3,4,5}; int[] b = {6,7,8,9,10}; var query = a.Concat(b).OrderBy(x => Guid.NewGuid().ToString());

springmvc-SpringMVC中怎么将@ResponseBody返回Json数据在log4j中输出

问题描述 SpringMVC中怎么将@ResponseBody返回Json数据在log4j中输出 spring配置如下: <!-- json转换器 --> text/html;charset=UTF-8 controller如下: @RequestMapping("/saveUser") @ResponseBody public User saveUser(){ User user = new User(); user.setId("11"); user

配置-SpringMVC中怎么将@ResponseBody返回Json数据在log4j中输出

问题描述 SpringMVC中怎么将@ResponseBody返回Json数据在log4j中输出 SpringMVC中怎么将@ResponseBody返回Json数据在log4j中输出 spring配置如下: <!-- json转换器 --> text/html;charset=UTF-8 controller如下: @RequestMapping("/saveUser") @ResponseBody public User saveUser(){ User user =

extjs-Extjs中store问题,通过id,从后台查数据存入store中,并在panel中显示

问题描述 Extjs中store问题,通过id,从后台查数据存入store中,并在panel中显示 //创建model Ext.regModel('rukuInfos',{ fields:[{name:'id'},{name: 'rukuRemark'},{name:'rukuAcount'},{name:'rukuDateTime'},{name:'rukuId'}] }); //有问题的方法 function showruku(){ var rukustore = Ext.create('E