配列を生成する関数があるので、次のようにさらに実行できます。
while ($this->stmt->fetch()) // $row is generated here
{
.....
}
このwhileループに書き込むと、正常にprint_r($row)
動作し、さまざまな配列が表示されます
しかし..そこに書き込むと$return[] = $row
、$return
配列内にすべての重複エントリがあります
そんなことがあるものか?私はとても疲れていて、それを理解することができません。
アップデート
public function bind_array($stmt, &$row)
{
$md = $stmt->result_metadata();
$params = array();
while($field = $md->fetch_field()) {
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
}
public function results($method = 'assoc', $close_stmt = false)
{
$this->bind_array($this->stmt, $row);
while ($this->stmt->fetch())
{
$ret[] = $row; // if write here print_r($row) instead everything is good
}
print_r($ret); // all are duplicate, 'id' are same, etc..
}