mysqli から一度に 1 つの結果セットしか開くことができないという問題があります。特に、アクションを実行した後、選択クエリをループしてそのクエリ内の列を更新しようとしています。
$db = new mysqli($DBServer, $DBUser, $DBPass , $DBName);
$sql = 'SELECT UPRN, POSTCODE FROM T_TEMP';
$stmt = $db->prepare($sql);
$stmt -> Execute();
<Create an array from the above select statement as i understand that mysqli can
only hold one result set at once (seems odd). I am unsure how to do this such that
i can then reference UPRN and POSTCODE later>
$stmt->Close();
$sql = 'update T_TEMP set LAT = ?, LONG = ? where UPRN = ?';
$stmt = $db ->prepare($sql);
<loop through that array built above grabbing UPRN and POSTCODE as you go through>
$postcode = urlencode(<Reference the postcode in the array>);
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$postcode."&sensor=false";
$xml = simplexml_load_file($request_url);
$lat = round(floatval($xml->result->geometry->location->lat),4);
$long = round(floatval($xml->result->geometry->location->lng),4);
$stmt -> bind_param('ddi',$lat,$long,$UPRN);
$stmt -> Execute();
<end loop>
最初のクエリの結果を配列に取得し、ループ内でその配列を参照して値を設定できるようにするのに苦労しています。どんな助けでも大歓迎です!