Создание функции для сбора данных из базы данных Oracle (массив по идентификатору) - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь создать функцию, которая просто позволит мне передать в нее оператор SQL, и он сгенерирует массив, основанный на уникальном идентификаторе, который я передаю:

function oracleGetGata($query, $id="id") {
    global $conn;
    $sql = OCI_Parse($conn, $query);
    OCI_Execute($sql);
    OCI_Fetch_All($sql, $results, null, null, OCI_FETCHSTATEMENT_BY_ROW);
    return $results;
}

Например, я бы хотел, чтобы этот запрос $array = oracleGetData('select * from table') возвращал что-то вроде:

[1] => Array
(
    [Title] => Title 1
    [Description] => Description 1
)
[2] => Array
(
    [Title] => Title 2
    [Description] => Description 2
)
[3] => Array
(
    [Title] => Title 3
    [Description] => Description 3
)

Вместо того, что он возвращает в данный момент:

[0] => Array
(
    [ID] => 3
    [TITLE] => Title 3
    [DESCRIPTION] => Description 3
)
[1] => Array
(
    [ID] => 1
    [TITLE] => Title 1
    [DESCRIPTION] => Description 1
)
[2] => Array
(
    [ID] => 2
    [TITLE] => Title 2
    [DESCRIPTION] => Description 2
)

Я бы очень признателен за любую помощь в этом, так как функция сэкономила бы мне лотов времени! Спасибо.

1 Ответ

2 голосов
/ 21 марта 2012

Не проверено и без надлежащей обработки ошибок:

function oracleGetGata($query, $id="id") {
    global $conn;

    $results = array();
    $sql = OCI_Parse($conn, $query);
    OCI_Execute($sql);
    while ( false!==($row=oci_fetch_assoc($sql)) ) {
        $results[ $row[$id] ] = $row;
    }
    return $results;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...