Проблемы в использовании пакета PEAR DataObject
От: php_ddd  
Дата: 16.07.09 13:29
Оценка:
Здравствуйте.

Прошу помочь уважаемое сообщество. Дело в следующем.
Не удается использовать DataObject для работы с базой данных.
Поступаю так:
1) при помощи createTables.php создал классы для всех таблиц базы, создал ini-файл.
2) Использую пример из руководства к пакету DataObject, который описывает работу этого объекта (http://pear.php.net/manual/en/package.database.db-dataobject.intro-purpose.php) с целью построить объект, описывающий таблицу 'person'.

При выполнении скрипта получаю ответ (при debugLevel = 5):
DataObjects_Person: CONNECT: Checking for database specific ini ('') : database_ in options
DataObjects_Person: CONNECT: NEW CONNECTION TP DATABASE :
DataObjects_Person: CONNECT: mysql://root@localhost/DB_YAMAHA a9f52db4180156a7919157c5a2b352e2

где "DB_YAMAHA" — название базы данных, используемой для тестов.

Причем, после создания объекта DataObject для таблицы 'person' при просмотре этого объекта (распечатка при помощи print_r) он содержит практически пустые поля:
DataObjects_Person Object ( [id] => [name] => [friend] => [_DB_DataObject_version] => 1.8.10 [__table] => [N] => 0 [_database_dsn] => [_database_dsn_md5] => [_database] => [_query] => Array ( [condition] => [group_by] => [order_by] => [having] => [limit_start] => [limit_count] => [data_select] => * ) [_DB_resultid] => [_resultFields] => [_link_loaded] => [_join] => [_lastError] => )

Поле 'table__' в этом объекте пустое.

Если же использовать не переопределенный класс DataObjects_Person, а тот который автоматически создается при помощи createTables.php, то поле
'table__' = 'pearson' в остальном результат (ответ, который выводится на экран при выполнении index.php) тот же.

Контекст использования:
Использую PEAR в связке с Denwer без установки и прописывания путей в php.ini.
Для тестов создана отдельная папка в каталоге home в структуре Denwer — т.е. создан отдельный сайт.
Структура такая:

index.php
example.ini
includes
|
dbtest
|
DB_YAMAHA.ini
Person.php
...
pear
|
PEAR
| |
| ChannelFile
| Command
| Downloader
| ...
DB
|
DataObject
| |
| Cast.php
| createTables.php
| ...
DB
||
|sybase.php
|storage.php
|...
|
MDB2
| |
| Driver
|
DataObject.php
DB.php

В index.php в начале прописаны пути для PEAR:

$path = 'pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

$path = 'pear\PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);


Есть подозрение, что не правильно настраиваю подключение объекта к ini файлу, описывающему базу данных.
Но в руководстве пользователя (http://pear.php.net/package/DB_DataObject/docs) пока что не найдено никаких ключей к этому вопросу.

Где можно посмотреть варианты возможного решения проблемы?
Что возможно сделать в такой ситуации и что можно исправить?
Как вы считаете?
pear php denwer dataobject
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.