【发布时间】:2013-07-24 08:06:41
【问题描述】:
我有这样的查询
select fname,joined_date from employees where id=1
目前我用来显示此返回的员工详细信息的日期格式是 Y-m-d。 但是现在我需要将mysql默认格式Y-m-d转换为d/m/Y(在所有日期信息显示字段中)。
对我来说,非常非常困难要遍历所有文件来进行日期格式转换。
所以我想在我的数据库类中做一些这样的事情。我的数据库类中有这样的功能
function fetch($res){
$row = mysql_fetch_assoc($res);
foreach($row as $key=>$value){
if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/',$value))
$row[$key] = date('d/m/Y',strtotime($value));
}
return $row;
}//end function
我正在像这样使用这个功能
$row = $db->fetch($res);
或
while($row = $db->fetch($res)){...}
我得到了预期的输出,但有一条错误消息
foreach 的参数无效
看起来 fetch 函数代码执行了 (total_num_rows + 1) 次
如果我使用 for 循环而不是 foreach,则会出现未定义的偏移错误
目前我正在使用类似的东西来逃避
if(is_array($row)){...}
当我查找 $res 类型时, 这显示了 资源(第一次迭代),资源(第二次)
对于 $row 数组
数组(第一次迭代),布尔值(第二次)
谁能告诉我为什么会这样? 或者有更好的方法吗?
提前致谢。
【问题讨论】:
标签: php