Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   $GLOBALS['TYPO3_DB']->sql_query в TYPO3 9 (http://forum.typo3.ru/showthread.php?t=12578)

Ивано++ 08.07.2019 15:00

$GLOBALS['TYPO3_DB']->sql_query в TYPO3 9
 
PHP код:

$res $GLOBALS['TYPO3_DB']->sql_query("
            SELECT * FROM my_table 
        "
);
        
$num $GLOBALS['TYPO3_DB']->sql_num_rows ($res);
        if (
$num 0){
            while ( (
$ardamp $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) { 


В старых версиях TYPO3 была возможность делать произвольные запросы через $GLOBALS['TYPO3_DB']->sql_query(".

Как это сделать в TYPO3 9?

Николай Сипко 09.07.2019 12:52

https://docs.typo3.org/m/typo3/refer...ion/Index.html

Ивано++ 09.07.2019 13:03

Цитата:

Сообщение от Николай Сипко (Сообщение 41514)

Живой пример приведите.

Николай Сипко 09.07.2019 13:14

А это разве не "живые примеры":
https://translate.google.ru/translat...n%2FIndex.html

Ивано++ 13.07.2019 12:56

Ссылок масса, но я не нашел как сделать именно прямой произвольный запрос к БД в новой тайпе.

PHP код:

$res $GLOBALS['TYPO3_DB']->sql_query("
            SELECT * FROM my_table 
        "
);
        
$num $GLOBALS['TYPO3_DB']->sql_num_rows ($res);
        if (
$num 0){
            while ( (
$ardamp $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) { 

Как сделать такой запрос в новой тайме - нужен пример в комментариях, а не ссылки.

Николай Сипко 13.07.2019 13:25

Цитата:

Сообщение от Ивано++ (Сообщение 41517)
Ссылок масса, но я не нашел как сделать именно прямой произвольный запрос к БД в новой тайпе.

"TYPO3 начиная с версии 8 LTS использует Doctrine DBAL для работы с базой данных. Таким образом обеспечивается поддержка не только MySQL, но и Oracle, Microsoft SQL Server и PostgreSQL"
http://www.ttlab.ru/about-typo3-cms.html

"doctrine-dbal была введена в TYPO3 CMS версии 8 и заменяет старый API, основанный на $GLOBALS['TYPO3_DB'] . Авторам расширений рекомендуется переключиться с TYPO3_DB на новый API.

Отдельная глава помогает с типичными вопросами миграции. При построении абстракции базы данных в doctrine-dbal старые и необязательные расширения dbal и adodb устарели"
https://translate.google.ru/translat...n%2FIndex.html

"Как использовать DBAL Doctrine" (как сделать именно прямой произвольный запрос)
https://symfony.ru/doc/current/doctrine/dbal.html

Приятной работы!

Manas 21.07.2019 19:18

Начиная с 9-й ветки TYPO3 этог всё делается через QueryBuilder
https://docs.typo3.org/m/typo3/refer...der/Index.html
https://gist.github.com/einpraegsam/...fbf92d43400986
прямых запросов больше нет.

Николай Сипко 22.07.2019 12:21

"Библиотека Doctrine предназначена для работы со всеми крупными базами данных с помощью унифицированного интерфейса программирования. Этот интерфейс программирования реализован на двух уровнях.

На нижнем уровне Doctrine предоставляет единый механизм для построения SQL-запросов к любой поддерживаемой реляционной БД и управления схемой БД. Этот механизм реализован в компоненте Database Abstraction Layer (DBAL, абстрактный уровень базы данных).

На высшем уровне компонент ORM (объектно-реляционный проектор) обеспечивает возможность запрашивать и управлять данными БД объектно-ориентированным способом, устанавливая соответствие между таблицами и PHP-классами. Этот компонент также предоставляет свой собственный язык запросов, DQL, позволяющий строить запросы в объектно-ориентированном стиле.

Как правило, используется API, предоставляемый компонентом ORM. В то же время вы вполне можете работать с компонентом нижнего уровня DBAL, если находите его более подходящим для ваших проектов"

https://olegkrivtsov.github.io/using...%8B%D1%85.html

Ивано++ 22.07.2019 13:37

Цитата:

Сообщение от Manas (Сообщение 41548)
Начиная с 9-й ветки TYPO3 этог всё делается через QueryBuilder
https://docs.typo3.org/m/typo3/refer...der/Index.html
https://gist.github.com/einpraegsam/...fbf92d43400986
прямых запросов больше нет.

Как получить список колонок в таблице?
Как составить более сложный запрос.

Не может быть что бы не было возможности делать произвольные запросы к БД. Doctrine это позволяет делать насклько знаю. Но как сделать это в TYPO3 9 не могу найти примера.

Раньше можно было сделать:
PHP код:

$res $GLOBALS['TYPO3_DB']->sql_query(" SELECT * FROM my_table  ");
while ( (
$row $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) { } 


Николай Сипко 22.07.2019 14:06

https://docs.typo3.org/m/typo3/refer...ion/Index.html


Часовой пояс GMT +4, время: 03:21.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot