i-litovan 26 января 2014 0 3
Добрый день.

Очень понравилась библиотека для работы с Базами данных — xPDO.
Попробовал запустить ее работу на чистом PHP-коде, на основе тех статей, которые прочитал про xPDO.

Вот так создал подключение (добавив только кодировку с БД):

$xpdo = new xPDO('mysql:host=localhost;dbname=db',"user","pass",
                                        array (
                                                XPDO::OPT_CACHE_PATH => 'cache/',
                                                XPDO::OPT_TABLE_PREFIX => '',
                                                XPDO::OPT_HYDRATE_FIELDS => true,
                                                XPDO::OPT_HYDRATE_RELATED_OBJECTS => true,
                                                XPDO::OPT_HYDRATE_ADHOC_FIELDS => true,
                                                XPDO::OPT_VALIDATE_ON_SAVE => true,
                                        ),
                                        array (
                                                PDO::ATTR_ERRMODE => PDO_ERRMODE_SILENT,
                                                PDO::ATTR_PERSISTENT => false,
                                                PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
						PDO::MYSQL_ATTR_INIT_COMMAND =>  "SET NAMES 'UTF8'"
                                        )
                                ); 

...


И все заработало…

include("dbConnection.php");
$content = $xpdo->getObject('MyContent', 1);
if($page)
{
        echo "Страница - ".$content->name;
}
else
{
        echo "Ничего не найдено :(";
}


Получилось также работать с limit(), where();
Но при попытке создавать Join-запросы — ничего не выводиться.
Т.к. проблема, как понимаю в том, что у меня есть названия таблиц — например вот такого формата — «table_name_users», т.е. с нижними подчеркиваниями. И соответственно в запросах надо где-то использовать TableNameUsers, а где то — (в join) — использовать — table_name_users и тогда запрос проходит успешно.

Можно ли как-то настроить xPDO так, что бы можно было везде использовать один и тот же формат названия таблиц в запросах — TableNameUsers?

— Спасибо.
3 комментария
Fi1osof1
Fi1osof 26 января 2014г в 03:36 #
Добрый день.

Вы путаете названия классов и названия таблиц. Это разные вещи. На основании информации о запрошенном классе, формируется запрос к его таблице. Поищите и почитайте подробней о мап-файлах. Вот пример, на котором многое станет понятней.
i
i-litovan 26 января 2014г в 12:51 #
При вызове использую имя класса «TableNameUsers» (при запросах он делает FROM table_name_users AS TableNameUsers).
Но правильно ли понимаю, в запросах, например в JOIN — придется все равно использоваться название table_name_users?
Fi1osof1
Fi1osof 26 января 2014г в 18:10 #
Нет, не правильно. Вот пример.

Я вам советую меньше вопросов задавать, и больше самому покопаться. А еще все топики вот в этом разделе прочитать, начиная с первого. Многое станет ясно.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.