php mysqli 字段缺失,php,存储过程_mysqli执行存储过程后返回的结果集字段有缺失,php,存储过程,mysqli - phpStudy...

mysqli执行存储过程后返回的结果集字段有缺失

我写了一个统计发布数的proc,结果在navi里显示结果正常,所有的ip都能做为字段列出来,但是在mysqli调用时,他只显示了一个ip,实在是找不到原因了!求各位大神指点!

表A结构

create table(

years int,

months date,

weeks int,

days date,

pubcount int,

ip varchar(50)

);

生成的表B结构

create table(

param varchar(50),#这个是根据参数来显示的【1:years,2:months,3:weeks,5:days】

ip1,

ip2,

ip...,#[这里根据A表实际的IP字段数据生成]

ipn,

total

)

下面是具体的SQL PROC代码,表A的结构也是根据phpcms的v9_news表生成的按日统计结果,也就是temp_public_data临时表

CREATE DEFINER=`root`@`localhost` PROCEDURE `jc_adv_count_public`(IN `pType` INT,IN `pDayBegin` date,IN `pDayEnd` date)

BEGIN

DECLARE sTYPE VARCHAR(20);

DROP TEMPORARY TABLE IF EXISTS temp_public_data;

CREATE TEMPORARY TABLE temp_public_data SELECT

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m-%d') as days,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m') as months,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y') as years,

DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%u') as weeks,

count(n.id) as pubnum,n.username from v9_news as n

WHERE DATE_FORMAT(FROM_UNIXTIME(n.inputtime),'%Y-%m-%d') BETWEEN pDayBegin AND pDayEnd

GROUP BY days,n.username;

IF pType=1 THEN

SET sType = "years";

ELSEIF pType=2 THEN

SET sType = "months";

ELSEIF pType=3 THEN

SET sType = "weeks";

ELSEIF pType=5 THEN

SET sType = "days";

END IF;

SET @SQLLEN = "";

SET @EE = "";

SELECT @EE:= CONCAT(@EE,',SUM(IF(username=\'',username,'\',pubnum,0)) AS \'',username,'\'') AS SQLSTR FROM (SELECT DISTINCT username FROM temp_public_data) A ORDER BY LENGTH(SQLSTR) DESC LIMIT 0,1;

SET @SQL = CONCAT('SELECT IFNULL(',sType,',\'TOTAL\') AS MONTH');

SET @SQL = CONCAT(@SQL,@EE);

SET @SQL = CONCAT(@SQL,',SUM(pubnum) as TOTAl ');

SET @SQL = CONCAT(@SQL,' FROM temp_public_data');

SET @SQL = CONCAT(@SQL,' GROUP BY ',sType,' WITH ROLLUP;');

#SELECT @SQL;

PREPARE stmt FROM @SQL;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

DROP TEMPORARY TABLE IF EXISTS temp_public_data;

END

结果在navi下生成的结果集是正确的,所有的IP都能正常显示,如图

而在php中使用mysqli调用却只显示了一个IP

用fetch_fiels显示也只有三个字段

PHP代码如下

相关阅读:

如何获得微信公众号文章10万+的真实数据

PHP验证上传文件

使用pdo执行sql的insert操作出现灵异现象

mvc模式中的model的作用的疑问

vue.js组件问题

apache的bin\httpd.exe可以启动,但是作为服务就无法启动。

MyISAM的50%阈值什么意思?

v-model取不到数据?

Bmob后端云查询出错。

android怎么使用别人的开源项目到自己的项目中

这样写样式浏览器会选取 DOM 元素两次吗?

js如何实现旋转后缩放图像

电商网站列表页中图片的展示,一般是通过什么方法防止图片变形的?

怎么获取td同一列?

PHP正则表达式

express + jade 更新数据重新渲染时页面没有显示更新的信息

如何在我启动spring boot的时候执行类中的方法

如何理解Vue组件中所说的is特性?

vuejs 1.x中如何删除某个数组?已经给定数组索引

node求助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值