mysql查询的1个存储过程,显示2个查询结果,怎么在PHP里把2个结果显示出来
mysql查询的1个存储过程,显示2个查询结果,怎么在PHP里把2个结果显示出来
------------------------------
mysql存储过程:
-------------------------------
begin
declare strSQL varchar(3000);
declare beginnum int;
declare strCount_s varchar(2000);
/*判断页数,如果是空或者0或者null默认第一页*/
if(PageIndex is null or PageIndex = '' or PageIndex = 0)
then
set PageIndex = 1;
end if;
/*判断每页显示数,如果是空或者0或者null默认第一条*/
if (SplitCount=0 or SplitCount='' or SplitCount is null)
then
set SplitCount = 1;
end if;
/*根据条件,查询所有数据集*/
set @beginnum = (PageIndex -1) * SplitCount;
set @strSQL = concat('select ', numtype, ' from ', tablename, ' where ', wheretype,' ' , OrderBy, ' limit ',@beginnum, ',', SplitCount);
PREPARE stmt from @strSQL;
execute stmt;
DEALLOCATE PREPARE stmt;
/*根据条件,查询总数据数量*/
set @strCount_s=concat('select count(1) as countnum from ', tablename,' where ', wheretype);
prepare select_rowscount from @strCount_s;
execute select_rowscount;
DEALLOCATE PREPARE select_rowscount;
end
MYSQL结果1: DEALLOCATE PREPARE stmt; 输出的所有查询数据
MYSQL结果2: DEALLOCATE PREPARE select_rowscount; 输出查询总数量
----------------------------------------
PHP存储过程类
----------------------------------------
/**
* 存储过程操作
*
* @param $produceAndParams 存储过程名称及参数
* 格式为ProduceName(para1, para2.....),
* 如果参数是字符请加单引号
* @return $resultnum 返回操作成功影响的行数
* @throws Exception 存储过程异常
*/
public static function RunProduce($produceAndParams)
{
global $_config;
if (!mysql_query("SET NAMES ".$_config['coding'], self::$_wdbConn)) {
throw new Exception("设置字符集".$_config['coding']."失败:".mysql_error());
}
if(!mysql_query('call '.$produceAndParams.';', self::$_wdbConn)) {
throw new Exception("调用存储过程失败:".mysql_error());
}
$resultNum = mysql_affected_rows(self::$_wdbConn);
return $resultNum;
}
----------------------------------
怎么在PHP里写,能把存储过程查询的2个结果显示出来
------解决方案--------------------
我搜集的资料,你可以参考一下:
- PHP code
php调用MySQL存储过程方法集合 类型一:调用带输入、输出类型参数的方法 view plainprint? $returnValue = ''; try { mysql_query ( "set @Return" ); $spname = 'P__Test_GetInfo1'; mysql_query ( "call $spname(@Return, '{$userId}', '{$pwd}')" ) or die ( "[$spname]Query failed:" . mysql_error () ); $result_return = mysql_query ( "select @Return" ); $row_return = mysql_fetch_row ( $result_return ); $returnValue = $row_return [0]; } catch ( Exception $e ) { echo $e; } echo $returnValue; //输出来自存储过程中输出的变量 类型二:调用带多个输出类型和多个输入类型参数的方法 view plainprint? $userId = 0; try{ mysql_query("set @Message"); mysql_query("set @Id"); mysql_query("call P__Test_Login(@Message, @Id, '{$userId}', '{$pwd}')", $conn) or die("Query failed:".mysql_error()); $result_mess = mysql_query("select @Message"); $result_uid = mysql_query("select @Id"); $row_mess = mysql_fetch_row($result_mess); $row_uid = mysql_fetch_row($result_uid); $Proc_Error = $row_mess[0]; $uId = $row_uid[0]; } catch( Exception $e ) { echo $e; } echo 'proc return message:'$Proc_Error.'<br>'; //输出来自存储过程中输出的变量 echo 'User id:'.$uId; //获取用户id 类型三:调用带返回结果集的方法 view plainprint? try { $spname = 'P__Test_GetData'; $query = mysql_query ( "call $spname()", $conn ) or die ( "[$spname]Query failed:".mysql_error() ); while ( $row = mysql_fetch_array ( $query ) ) { echo $row ['ProvinceID'].'::'.$row ['ProvinceName']; //输出数据集 } } catch ( Exception $e ) { echo $e; } 类型四:调用带返回多个结果集的方法(目前只能通过mysqli来实现~~~~~) view plainprint? //PHP $rows = array (); $db = new mysqli($server,$user,$psd,$dbname); if (mysqli_connect_errno()){ $this->message('Can not connect to MySQL server'); } $db->query("SET NAMES UTF8"); $db->query("SET @Message"); if($db->real_query("call P__Test_GetData2(@Message)")){ do{ if($result = $db->store_result()){ while ($row = $result->fetch_assoc()){ array_push($rows, $row); } $result->close(); } }while($db->next_result()); } $db->close(); print_r($rows); <div class="clear"> </div>

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。

“mysql-connector”是mysql官方提供的驱动器,可以用于连接使用mysql;可利用“pip install mysql-connector”命令进行安装,利用“import mysql.connector”测试是否安装成功。

在mysql中,是否需要commit取决于存储引擎:1、若是不支持事务的存储引擎,如myisam,则不需要使用commit;2、若是支持事务的存储引擎,如innodb,则需要知道事务是否自动提交,因此需要使用commit。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
