2

下面这个简单的代码我想在数组获取中替换[3]2010-01-01[6]到。edited我找到了用键就地编辑的功能,但 PHP 不能正常工作:

while ( $aRow = mysql_fetch_array( $rResult ) )
{
    replace_key('id', '00', $aRow);
    $output['aaData'][] = $aRow;
}

结果:

Array
(
    [0] =>aaaaaaa
    [title] => bbbbbb
    [1] => 86
    [id] => 86
    [2] => rewr
    [subject] => rewr
    [3] => 0000-00-00
    [date_time] => 0000-00-00
    [4] => admin
    [username] => admin
    [5] =>cccc
    [6] =>ddddd
)
4

1 回答 1

0

使用mysql_fetch_array()的默认参数,您的 SQL 查询为每一行返回一个索引和关联数组条目。

首先,我强烈建议您远离mysql_*样式函数。这套工具已经被弃用了一段时间,并且不再更新。网上有很多资源可以更详细地解释原因,还有一些不错的选择。唉,让我们继续。

接下来,我建议(如果您需要使用此函数)您使用一种返回格式方法或另一种,方法是将MYSQL_ASSOC(关联数组)或MYSQL_NUM(编号数组)作为第二个参数传递给函数。

例如MYSQL_ASSOC会给你:

Array
(
    [title] => bbbbbb
    [id] => 86
    [subject] => rewr
    [date_time] => 0000-00-00
    [username] => admin
)

通常,这比编号数组更受青睐,因为您不必依赖在查询中选择列的顺序。

例如MYSQL_NUM会给你:

Array (
    [0] =>aaaaaaa
    [1] => 86
    [2] => rewr
    [3] => 0000-00-00
    [4] => admin
)

正确的。现在,要在 while 循环中编辑数组,只需添加以下行:

// Using MYSQL_ASSOC

while ( $aRow = mysql_fetch_array( $rResult , MYSQL_ASSOC ) ) {

    $aRow['date_time'] = '2010-01-01';
    $aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'

    $output['aaData'][] = $aRow;

}

或者:

// Using MYSQL_NUM

while ( $aRow = mysql_fetch_array( $rResult , MYSQL_NUM ) ) {

    $aRow[3] = '2010-01-01';
    $aRow[6] = 'edited';

    $output['aaData'][] = $aRow;

}

如果您仍然想同​​时使用两者,则需要使用两个示例中的行:

// Using DEFAULT / MYSQL_BOTH

while ( $aRow = mysql_fetch_array( $rResult ) ) {

    $aRow['date_time'] = '2010-01-01';
    $aRow[3] = '2010-01-01';

    $aRow['status'] = 'edited'; // Whatever key this column should be needs to be added instead of 'status'
    $aRow[6] = 'edited';

    $output['aaData'][] = $aRow;

}
于 2014-02-13T15:18:01.363 回答