数组动态列读不出数据
$list=$m->query($sql);//查询结果 $columns=$this->getcolumns($tableName); //模型列名 foreach ($list as $l) { foreach ($columns as $c) { $l[$c];//数据读不出来 } }
如以上 从数据库把所有列都出来 然后动态 根据列名动态取数据取不出来
回复讨论(解决方案)
因为要 返回json 表列有点多 一个个写有点复杂 所以找了个取列明的方法
然而不能动态读取数据么
你
print_r($list);
print_r($columns);
看看都有什么
你
print_r($list);
print_r($columns);
看看都有什么
好像发现一个问题
$l['user_name'] 能显示数据 $l['USER_NAME'] 换了大小写就不显示了 php数组区分大小写么
数据库里是大写查询出来的 读的时候都用小写?
对!php数组区分大小写
$a = array('a' => 1, 'A' => 2);print_r($a);
Array( [a] => 1 [A] => 2)
由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用 array_change_key_case 函数统一将关联键转换成大写或小写
由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用 array_change_key_case 函数统一将关联键转换成大写或小写
知道了 多谢
由于数据库查询时,字段名可能大小写不统一
所以你可对读到的数组用 array_change_key_case 函数统一将关联键转换成大写或小写
$list=array_change_key_case($list,CASE_UPPER);foreach ($list as $l) { foreach ($columns as $c) { $l['USER_NAME'];// }}
转换后读的时候好像还是大写读不出 只能小写读数据
既然你是 foreach ($list as $l)
那么显然 $list 是二维数组,不然也不会有 foreach ($list as $l)
所以要对 $l 做 array_change_key_case
foreach ($list as $l)
{
$l = array_change_key_case($l, CASE_UPPER);
foreach ($columns as $c)
{
echo $l[$c];
}
}
既然你是 foreach ($list as $l)
那么显然 $list 是二维数组,不然也不会有 foreach ($list as $l)
所以要对 $l 做 array_change_key_case
}
了解了
上一篇: PHP封装CURL扩展类实例_PHP
下一篇: php自定义加密与解密程序实例_PHP