MYSQLIには、DBからフェッチされたクエリのreulttypeを指定するオプションがあります。CodeIgniterでの結果のフォーマット結果のフォーマット
mysqli_fetch_array(result、resulttype);
CodeIgniterフレームワークを使用するときに同様のオプションがあるかどうかを知りたかったのです。デフォルトではASSOC配列を返すようですが、MYSQLI_NUM型の配列が必要です。事前
MYSQLIには、DBからフェッチされたクエリのreulttypeを指定するオプションがあります。CodeIgniterでの結果のフォーマット結果のフォーマット
mysqli_fetch_array(result、resulttype);
CodeIgniterフレームワークを使用するときに同様のオプションがあるかどうかを知りたかったのです。デフォルトではASSOC配列を返すようですが、MYSQLI_NUM型の配列が必要です。事前
で
おかげで答えはノーである、CIはMYSQLI_NUM型配列を返すためのオプションを持っていません。
CIデータベースのリターンを再構築して、必要な構造を得ることはあまり難しくありません。
多くの場合、MYSQLI_NUM型の配列結果を得たいと仮定します。result_num_array()
というモデルで関数を作成します。これは、CI_DB_result
を返す任意のCIデータベース関数の出力を再構成します。これらの機能は、db->query()
,db->get()
、およびdb->get_where()
です。これらのいずれかからの戻り値は、このように定義されたresult_num_array()
に渡された引数になります。
public function result_num_array($query)
{
$data = $query->result_array();
$result = [];
foreach($data as $record)
{
$row = [];
foreach($record as $field)
{
$row[] = $field;
}
$result[] = $row;
}
return $result;
}
使用例:架空のモデル関数ではそう
public function get_some()
{
$query = $this->db->query("Select * from sometable");
return $this->result_num_array($query);
}
よう
get_some()
使用result_num_array()
はどうもありがとうございました、それは多くの意味になります –