少し前に、このサイトの VolkerK の助けを借りて、Oracle データベースにクエリを実行し、インデックスに応じて適切にフォーマットされた PHP 配列にコンテンツを配置する関数を作成しました。これが元の質問です。
問題は、場合によっては、簡単なクエリから単一の値を返したいだけで、そうすると次のエラーが発生することです。Notice: Undefined index:
私が使用しているコードは次のとおりです。
function oracleGetData($query, $id = null) {
global $conn;
$results = array();
$sql = OCI_Parse($conn, $query);
OCI_Execute($sql);
while ( false!==($row=oci_fetch_assoc($sql)) ) {
$results[ $row[$id] ] = $row;
}
// remove one layer if there's only one record
if(count($results) == 1 and is_null($id)) {
$results = array_pop($results);
}
return $results;
}
配列にデータを入力する行を次のように変更しようとしました:
if(is_null($id)) {
while ( false!==($row=oci_fetch_assoc($sql)) ) {
$results[ $row ] = $row;
}
} else {
while ( false!==($row=oci_fetch_assoc($sql)) ) {
$results[ $row[$id] ] = $row;
}
}
基本的に、$id 変数が null の場合、それへのすべての参照を削除しますが、「警告: 無効なオフセット タイプ」エラーが発生します。
必要な単一のフィールドを関数に渡そうとしましたが、同じエラーが発生しました。
ありがとうございました