为啥php中sql语句查询数据库输出的全是array?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥php中sql语句查询数据库输出的全是array?相关的知识,希望对你有一定的参考价值。

php代码如下:

$res=$mysql->getData("select sid,name,subname,thumb
from cdb_subject where catid=26
order by sid desc
limit 0,5");
整句意图是调取catid为26下的所有sid,name,subname和thumb,组成数组赋值给$res。

这句SQL语句是没问题的,在MyphpAdmin可以顺利输出数据;但放到网页里就是不行。结果输出到txt里显示arrayarrayarrayarrayarray,5个无效的array。

数据库字符集是gbk_chinese_ci的,PHP页面是utf-8的,但应该不是这个原因吧,其他位置输出很正常。

本来就是array
但不是无效的array
array是数组,他返回的数据是数组形式的
你要是直接 echo一个数组,那显示的就是array
你改用print_r($res)试试
他就不会是单单array了追问

其实我不用print_r
,之所以这么做是想看看能否正常输出数据。方法笨了点。。。刚试了,print_r
也打不出来,还是array。

参考技术A

$res是二维数组,从mysql中取出的数据都会以数组的形式返回的,你可以var_dump($res),想在网页中输出取出的数据需要循环遍历:

<?php foreach($res as $value)
    echo $value['field'];//field为你表中的字段名,比如user表中有name字段,那么field就为name,有几个就写几个,不想显示某个字段就不用写

?>

追问

我下面的确是foreach,但循环的结果为空,所以就想看看SQL输出这个地方正不正常,有好的方法吗?var_dump到文本里还是array

追答

在第一行加上

ini_set('display_errors', 1);
error_reporting(E_ALL);

运行一下看是什么错误提示,我估计是你查询数据的时候出错了并且你屏蔽了错误输出.

参考技术B 我通过一个页面让用户提交了12个多选列表,
获取出来就是12个数组,

然后根据这12个数组里的内容进行数据库搜索,

可是发现好像没有办法把这12个数组里的内容一项一项提取出来,然后写sql查询语句。。

比如:

$a = array(a,b,c,d);
$b = array(1,2,3,4);
$c = array(I,II,III,IV);
然后我想select * from 表名 where name=a AND name=b AND name=c AND name=d AND name=1 AND name=2..... AND name=IV

不知道如何可以实现呢?用foreach循环的话,只怕每次都是当前元素的值,这样查出来是每一个当前元素可以搜索到的结果。。。

但是我想查询的是所有数组里所有元素存在的条件下,最后的结果。。

求助各位高人!
参考技术C phhp  阿萨德撒大大

参考技术D 你取出来的是数组,可能需要再转换一下

eclipse中搜狗输入法中文状态下输出的全是英文

在eclipse中搜狗输入法变成了如图这样

技术分享

在中文状态下,提示的全是中文。

查询到的解决方案:

快捷键ctrl+shift+E关闭搜狗智能英文。

然而与eclipse中
Ctrl+shift+E 快捷键冲突
解决办法 第一步
打开eclipse-->window-->preference-->General-->keys

技术分享

暂时修改快捷键。问题解决后建议改回来。

第二步

检查搜狗输入法快捷键设置,如果ctrl+shift+e 快捷操作未勾选,则勾选上。

技术分享

 

 此时在eclipse中重新按Ctrl+shift+E 问题则可以完美解决。

虽然 just a little piece cake,但是自己解决完成后还是很开心。












以上是关于为啥php中sql语句查询数据库输出的全是array?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中搜狗输入法中文状态下输出的全是英文

在 SELECT 语句中使用自定义函数时,为啥我的 SQL 查询的输出显示不正确?

wpf中怎么为datagrid绑定一个list 我的代码如下,为啥显示出来的全是空行?。。。 似乎数据个数是对的…

sql 查询语句中对某列数据做条件判断

pl/sql粘贴进去的汉字全是问号

mysql只能取出一条记录为啥不显示