Просмотр полной версии : $GLOBALS['TYPO3_DB']->sql_query в TYPO3 9
$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/reference-coreapi/master/en-us/ApiOverview/Database/Migration/Index.html
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Database/Migration/Index.html
Живой пример приведите.
Николай Сипко
09.07.2019, 13:14
А это разве не "живые примеры":
https://translate.google.ru/translate?sl=auto&tl=ru&u=https%3A%2F%2Fdocs.typo3.org%2Fm%2Ftypo3%2Frefer ence-coreapi%2Fmaster%2Fen-us%2FApiOverview%2FDatabase%2FMigration%2FIndex.ht ml
Ссылок масса, но я не нашел как сделать именно прямой произвольный запрос к БД в новой тайпе.
$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
Ссылок масса, но я не нашел как сделать именно прямой произвольный запрос к БД в новой тайпе.
"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/translate?sl=auto&tl=ru&u=https%3A%2F%2Fdocs.typo3.org%2Fm%2Ftypo3%2Frefer ence-coreapi%2Fmaster%2Fen-us%2FApiOverview%2FDatabase%2FIntroduction%2FIndex .html
"Как использовать DBAL Doctrine" (как сделать именно прямой произвольный запрос)
https://symfony.ru/doc/current/doctrine/dbal.html
Приятной работы!
Начиная с 9-й ветки TYPO3 этог всё делается через QueryBuilder
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Database/QueryBuilder/Index.html
https://gist.github.com/einpraegsam/5214a4eb3b9ef6b932fbf92d43400986
прямых запросов больше нет.
Николай Сипко
22.07.2019, 12:21
"Библиотека Doctrine предназначена для работы со всеми крупными базами данных с помощью унифицированного интерфейса программирования. Этот интерфейс программирования реализован на двух уровнях.
На нижнем уровне Doctrine предоставляет единый механизм для построения SQL-запросов к любой поддерживаемой реляционной БД и управления схемой БД. Этот механизм реализован в компоненте Database Abstraction Layer (DBAL, абстрактный уровень базы данных).
На высшем уровне компонент ORM (объектно-реляционный проектор) обеспечивает возможность запрашивать и управлять данными БД объектно-ориентированным способом, устанавливая соответствие между таблицами и PHP-классами. Этот компонент также предоставляет свой собственный язык запросов, DQL, позволяющий строить запросы в объектно-ориентированном стиле.
Как правило, используется API, предоставляемый компонентом ORM. В то же время вы вполне можете работать с компонентом нижнего уровня DBAL, если находите его более подходящим для ваших проектов"
https://olegkrivtsov.github.io/using-zend-framework-3-book/html/ru/%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D 0%B8%D0%B5_%D0%93__%D0%92%D0%B2%D0%B5%D0%B4%D0%B5% D0%BD%D0%B8%D0%B5_%D0%B2_Doctrine/Doctrine_%D0%B8_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0% BC%D1%8B_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B 5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC %D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85.html
Начиная с 9-й ветки TYPO3 этог всё делается через QueryBuilder
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Database/QueryBuilder/Index.html
https://gist.github.com/einpraegsam/5214a4eb3b9ef6b932fbf92d43400986
прямых запросов больше нет.
Как получить список колонок в таблице?
Как составить более сложный запрос.
Не может быть что бы не было возможности делать произвольные запросы к БД. Doctrine это позволяет делать насклько знаю. Но как сделать это в TYPO3 9 не могу найти примера.
Раньше можно было сделать:
$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/reference-coreapi/master/en-us/ApiOverview/Database/Migration/Index.html
Мне не нужна ссылка. Так нет такого примера с sql_query
Приведите пример как сделать такой запрос в новой тайпе без TYPO3_DB.
$res = $GLOBALS['TYPO3_DB']->sql_query(" SELECT * FROM my_table ");
while ( ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) { }
Николай Сипко
22.07.2019, 14:16
Мне не нужна ссылка. Так нет такого примера с sql_query
Приведите пример как сделать такой запрос в новой тайпе без TYPO3_DB.
$res = $GLOBALS['TYPO3_DB']->sql_query(" SELECT * FROM my_table ");
while ( ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) ) { }
Не желаю
Не желаешь что?
Зачем пишешь тогда если не имеешь ответа - вопрос вполне конкретный?
Николай Сипко
22.07.2019, 16:08
Не желаешь что?
Зачем пишешь тогда если не имеешь ответа - вопрос вполне конкретный?
Не желаю далее с Вами общаться
Ну не желай.
Ответ на конкретно поставленный вопрос как - где?
Обычно если его нет - люди не пишут. А от вас все сообщения в этой теме это спам.
Вот вы привели пример - https://symfony.ru/doc/current/doctrine/dbal.html
А как это сделать в TYPO3?
Единственный вариант который нашел как сделать в 9.
$config = new \Doctrine\DBAL\Configuration();
$connectionParams = array(
'dbname' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['dbname'],
'user' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['user'],
'password' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['password'],
'host' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['host'],
'driver' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driver'],
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($conne ctionParams, $config);
$sql = "SELECT * FROM pages";
$stmt = $conn->query($sql); // Simple, but has several drawbacks
while ($row = $stmt->fetch()) {
echo $row['title'];
}
Ура!
Николай Сипко
07.08.2019, 01:28
Единственный вариант который нашел как сделать в 9.
$config = new \Doctrine\DBAL\Configuration();
$connectionParams = array(
'dbname' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['dbname'],
'user' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['user'],
'password' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['password'],
'host' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['host'],
'driver' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driver'],
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($conne ctionParams, $config);
$sql = "SELECT * FROM pages";
$stmt = $conn->query($sql); // Simple, but has several drawbacks
while ($row = $stmt->fetch()) {
echo $row['title'];
}
Ура!
А в "Корзина в TYPO3" http://forum.typo3.ru/showthread.php?t=12995 еще не поискали?
https://docs.typo3.org/c/typo3/cms-recycler/master/en-us/Configuration/Index.html
Ивано++ Senior Member, меня всегда удивляло, почему Вы предпочитаете задавать на форуме элементарные вопросы и ждать, чтобы кто-то услужливо Вам ответил, а не пользоваться документацией TYPO3 и информацией в интернете?
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot