php调用存储过程返回结果集

  php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法需要php调用存储过程,返回一个结果集,发现很困难,找了半天,终于在老外的论坛上找到解决方案,这里本地化一下。

关键就是两点

1)define('CLIENT_MULTI_RESULTS', 131072);

2)$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());

下面就可以正常使用了,以下是例子程序。

<?php
    define('CLIENT_MULTI_RESULTS', 131072);

    $link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
    mysql_select_db("vs") or die("Could not select database");
?>

        <?php
        $result = mysql_query("call get_news_from_class_id(2)") or die("Query failed:" .mysql_error());
        while($row = mysql_fetch_array($result, MYSQL_ASSOC))
        {
                $line = '<tr><td><a target = _blank href=\''.$row["url"].'\'>'.$row["title"].'('.$row["page_time"].')'.'</a></td></t
r>';
                echo $line;
                printf("\n");

        }
        mysql_free_result($result);
        ?>

<?php
    mysql_close($link);
?>

时间: 2024-08-17 17:00:05

php调用存储过程返回结果集的相关文章

使用VB调用Oracle程序包内的存储过程返回结果集

oracle|程序|存储过程        在实际的项目开发中我们需要通过VB(或其他语言工具)调用Oracle程序包内的存储过程返回结果集.这里以短信运营平台中的一个调用为例来说明这个过程,希望对你有所帮助. --一.使用SQL*Plus创建以下项目:--1.建表("OW_SMP"为方案名称,下同) CREATE TABLE "OW_SMP"."SM_Send_SM_List"(    SerialNo INT  PRIMARY KEY,  -

C#调用ORACLE存储过程返回结果集及函数

oracle|存储过程|函数   ORACLE段:首先在ORACLE建立PACKAGE和PACKAGE BODY,将在这里面定义函数和存储过程返回结果集.1:建立PACKAGE:CREATE OR REPLACE package SCOTT.pk_wtistype mytype is ref cursor;procedure p_wt(mycs out mytype);function f_get(str in varchar2)return varchar2;end; /说明:其实PACKAG

mybatis-Mybatis调用存储过程返回多个结果集

问题描述 Mybatis调用存储过程返回多个结果集 存储过程返回两个结果集(游标). CREATE?OR?REPLACE?FUNCTION?t_user_func(id?varchar(20)) ??RETURNS?SETOF?refcursor?AS $BODY$ Declare code?refcursor; result?refcursor; BEGIN????? ??--返回错误码 ??OPEN?code?FOR?select?1010?as?code; ??RETURN?NEXT?co

EF调用存储过程返回的结果集和过程执行的结果集不一致

问题描述 EF调用存储过程返回的结果集和直接在数据库里执行存储过程的结果不一样希望大家帮忙看一下. 解决方案 解决方案二:看下sql是否一致,参数传递有没有问题,是否是同一个数据库解决方案三:引用1楼苏小喵的回复: 看下sql是否一致,参数传递有没有问题,是否是同一个数据库 这些都没问题的呐!解决方案四:是修改前和修改后两个数据不一致吗?解决方案五:引用3楼JustinLiu27的回复: 是修改前和修改后两个数据不一致吗? 不是的,是在调用这个过程,返回的结果集,和在直接执行的结果不一致解决方案

用.NET调用Oracle存储过程返回记录集

oracle的存储过程返回记录集,关键之处是要用游标.关于数据库的游标(cursor)大家肯定都接触不少,我们可以通过OPEN,FETCH,CLOSE操作控制游标进行各种方便的操作,这方面的例子我就不在重复了. 我们现在要介绍的是游标变量(cursor variable).类似游标,游标变量也是指向一个查询结果集的当前行.不同的是,游标变量能为任何类型相似(type-compatible)的查询打开,而并不是绑定到某一个特定的查询.通过游标变量,你可以在数据库的数据提取中获得更多的方便. 首先是

一个通过Oracle8i存储过程,返回记录集的程序包(存储过程)

oracle|程序|存储过程|记录集 提示:在Oracle8i中,如果需要通过存储过程返回结果集, 需要使用游标! CREATE OR REPLACE  PACKAGE BODY "SMS_PAY"."SMSMAINT"                                                                               IS  --功能描述:查询代理银行交易流水信息 writer: wang haibo 200

一个通过Oracle8i存储过程返回记录集的程序包(存储过程)

提示:在Oracle8i中,如果需要通过存储过程返回结果集, 需要使用游标! CREATE OR REPLACE PACKAGE BODY "SMS_PAY"."SMSMAINT" IS --功能描述:查询代理银行交易流水信息 writer: wang haibo 2004-08-24 PROCEDURE GetAgtBankFlow(AreaCode in varchar2,KeyWord in varchar2,startTradeDate in varchar

PHP调用存储过程返回值不一致问题的解决方法分析_php技巧

本文实例讲述了PHP调用存储过程返回值不一致问题的解决方法.分享给大家供大家参考,具体如下: 今天遇一个同学聊存储过程返回值经常得到意外的值为null, 因为白天有事,晚上给做一个实验放在这里供有相应问题的同学查看一下. 存储过程: delimiter// createprocedureusp_s2(outpar1int) begin selectinet_ntoa(ip),portfromproxy_listlimit5; selectcount(*)intopar1fromproxy_lis

sql生成(c#调用存储过程返回数据表)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateServiceFunction] 脚本日期: 08/04/2012 11:26:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateServiceFunction]') AND type in (N'P', N'PC')) DROP PROCEDURE [d