mysqliとプリペアドステートメントを使用してMySQLテーブルから約50列を選択しています。私のコード:
if ($stmt = $mysqli->prepare("SELECT ".explode(",",$some_arr)." FROM some_table WHERE userid=?"))
{
$stmt->bind_param("i", $user->get_userid());
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
// Do I have to add 50 variables here? What if some_arr contains less than 50?
$stmt->bind_result($col1, $col2);
if($num_rows > 0)
{
while($stmt->fetch())
{
// wouldn´t this create a new array within each while loop?
$output_arr[] = array("key1" => $col1, "key2" => $col2);
}
$stmt->close();
}
}
ソースコードにも書いた2つの質問があります。まず、数が少ない場合に結果を変数にバインドする方法がわかりませんか?結果を配列にバインドする方法はありますか?2番目の質問はwhileループの内側です。50個の値を連想配列に追加したいのですが、示されている例では、whileループをループするたびに既存の配列が上書きされませんか?