Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP и ODBC, что это такое и с чем его едят 
:(
    Опции темы
PCM32
  Дата 6.11.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.6.2005

Репутация: нет
Всего: нет



Слушайте, объясните мне на ссылках и пальцах суть ODBC (в двух словах) и объясните, как её можно использовать в ПХП. (Основные функции)
PM MAIL   Вверх
Mal Hack
Дата 6.11.2005, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Есть несколько интерфейсов для работа с разными БД. Есть ОДБЦ - общий (не на все) интерфейс.
Я конечно несколько не корретно выразился. Это так сказать с позиции PHP программиста. Само понятие ODBC несколько другое, но я им не очень хорошо владею.

Инфа: http://php.net/odbc
PM ICQ   Вверх
Bikutoru
Дата 6.11.2005, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



ODBC - это Open DataBase Connectivity, технология, которая позволяет работать с принципиально любыми базами данных. Всё, что для этого требуется - это язык, позволяющий работать с ODBC (а PHP позволяет smile) и драйвер ODBC для той базы данных, с которой ты хочешь работать, и той операционной системы, которая установлена на сервере (Для MySQL под Windows, например, этот драйвер называется myodbc.dll).

Если всё установлено, то требуеся создать DNS той базы, с которой ты хочешь работать. DNS - это просто некоторое название (алиас), с помощью которого необходимо обращаться к базе данных. Он нужен для того, чтобы в конечном приложении абстрагироваться от файла или директории, где находится база (ибо это не удобно и при переносе приложения с тестового сервера на "боевой" всё может полететь).
В Windows 2000 DNS добавляется через Настройка - панель управления - Администрирования - Источники данных ODBC - Пользовательский DNS - Добавить - Выбрать ODBC драйвер базы данных - выбрать файл базы и ввести алиас.

После того, как алиас создан, можно работать с базой. Для подключения нужно использовать
Код

odbc_connect('My_DB_DSN', 'user', 'password');

Некоторые базы (например, MS Access) могут не требовать логина/пароля. В этом случае их можно опустить.
Для выполнения запроса можно использовать два способа:
1. odbc_exec()
2. odbc_prepare(), odbc_execute()
В первом случае ты просто передаёшь запрос и сразу получаешь результат. Во втором, необхо предварительно подготовить запрос к выполнению с помощью odbc_prepare(), после чего выполнить его с помощью odbc_execute(). Второй способ имеет смысл использовать, когда необходимо использовать запросы, отличающиеся лишь значениями каких-то полей. Например:
Код

INSERT INTO table (field) VALUES (1);
INSERT INTO table (field) VALUES (2);
INSERT INTO table (field) VALUES (3);


Для получения результата запроса стоит использовать функцию odbc_fetch_row(), которая переводит внутренний указатель результата запроса на следующую строку.

Для выборки значений полей из текущей строки результата используется функция odbc_result(). Столбцы нумеруются числами, начиная с 1!

Вот небольшой пример:
Код

<?php

    $dbLink = odbc_connect('access_test', '', '');
    if (!$dbLink)
        die(odbc_error());

    $sqlQuery = 'SELECT vname, vvalue FROM vval';
    odbc_exec($dbLink, $sqlQuery) 
        or die('Ошибка при выполнении запроса:' . odbc_error($dbLink));

    $sqlRes = odbc_exec($dbLink, $sqlQuery) or die('Ошибка при выполнении запроса:' . odbc_error($dbLink));

    while (odbc_fetch_row($sqlRes)) {
        $row = array (
            'vname'  => odbc_result($sqlRes, 1),
            'vvalue' => odbc_result($sqlRes, 2)
        );

        print_r($row);
    }

    odbc_free_result($sqlRes);
    odbc_close($dbLink);

?>


За чем-то более подробным на www.php.net/

Это сообщение отредактировал(а) Bikutoru - 6.11.2005, 17:39


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
Bikutoru
Дата 7.11.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата(Bikutoru @ 6.11.2005, 18:35)
DNS - это просто некоторое название (алиас), с помощью которого необходимо обращаться к базе данных

Обманул, а никто и не заметил. Не DNS, а DSN (Data Source Name).



--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.