当我将纯PHP代码转换为CodeIgniter时,我有一个本机PHP函数问题。对此有任何想法或替代解决方案吗?
纯PHP代码
$aColumns = array( 'id', 'name', 'first_name' );
$sTable = "ajax";
$sQuery = "SELECT SQL_CALC_FOUND_ROWS
".str_replace(" , ", " ", implode(", ", $aColumns))."FROM $sTable
$rResult = mysql_query( $sQuery );
while ( $aRow = mysql_fetch_assoc( $rResult ) )
{
print_r($aRow);
}
完美结果输出
Array
(
[id] => 1
[name] => kane
[first_name] => kane
)
Array
(
[id] => 2
[name] => kane
[first_name] => kane
)
Array
(
[id] => 3
[name] => kane
[first_name] => kane
)
Codeigniter CODE
$aColumns = array( 'id', 'name', 'first_name' );
$sTable = "ajax";
$sQuery = "SELECT SQL_CALC_FOUND_ROWS
".str_replace(" , ", " ", implode(", ", $aColumns))."FROM $sTable
$rResult = $this->db->query($sQuery);
while ( $aRow = $rResult->row_array() )
{
print_r($aRow);
}
无限结果输出
Array
(
[id] => 1
[name] => kane
[first_name] => kane
)
Array
(
[id] => 1
[name] => kane
[first_name] => kane
)
答案 0 :(得分:2)
多数民众赞成在你想要完成的事情中使用$result->row_array()
是错误的。
正确的方法是,循环结果并将结果作为数组获取,而不是使用$result->result_array()
方法。像这样:
foreach( $rResult->result_array() as $aRow )
{
print_r($aRow);
}
查看CI中generating query results的文档。
答案 1 :(得分:1)
删除SQL_CALC_FOUND_ROWS。您不需要这样做,因为您不限制结果集。
foreach($rResult->result_array() as $aRow)
print_r($aRow);
答案 2 :(得分:0)
您可能需要考虑稍微组织一下SQL语句。
$this->db->select('id, name, first_name')
->from('ajax')
$query = $this->db->get();
$count = $query->num_rows();
foreach ($query->result_array() as $row)
print_r($row);