Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

0 Пользователей и 1 Гость просматривают эту тему.
  • 16 Ответов
  • 3551 Просмотров
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
Подскажите пожалуйста, скопировал папки на другой хостинг, сделал экспорт потом импорт БД. Изменил данные в configuration.php данные на подключение к БД.
Но захожу на сайт и получаю Database connection error (2): Could not connect to MySQL.Database connection error (2): Could not connect to MySQL.

Настройки верный, пароль тоже верный проверил 100 раз авторизацией через консоль
« Последнее редактирование: 21.02.2021, 10:46:08 от kot488 »
*

IToro82

  • Захожу иногда
  • 354
  • 13 / 1
А базу перенесли?
В configuration.php надстроили?
Может вам проще использовать акиба?
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
А базу перенесли?
В configuration.php надстроили?
Может вам проще использовать акиба?
В configuration.php  только 3 строки меняется связанные с БД и все. Такое чувство что где то что то еще лежит. Перенести по другому не выйдет, компик полег где лежил сайт
« Последнее редактирование: 21.02.2021, 11:02:13 от kot488 »
*

IToro82

  • Захожу иногда
  • 354
  • 13 / 1
Так а саму базу то перенесли со старого хостинга или только папки?
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А на старом хостинге уже нет сайта ? Возможно DNS не обновились.
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
А на старом хостинге уже нет сайта ? Возможно DNS не обновились.

Причем dns к БД? в хосте принудительно IP прописан
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
Так а саму базу то перенесли со старого хостинга или только папки?
Ну написал же: сделал экспорт потом импорт БД
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Возможно что на новом сервере хост базы не localhost, а свой (встречал такое на некоторых хостингах)
В конфиге прописали базу\логин\пароль а хост неправильный, ошибка то явно говорит про неправильное подключение к базе
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
Возможно что на новом сервере хост базы не localhost, а свой (встречал такое на некоторых хостингах)
В конфиге прописали базу\логин\пароль а хост неправильный, ошибка то явно говорит про неправильное подключение к базе
По этому и проверил 100 раз логин и пасс. ПРобовал руками локальный IP БД указать, но без результатно
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
По этому и проверил 100 раз логин и пасс. ПРобовал руками локальный IP БД указать, но без результатно
А кто хостер? Обычно у них где нить в FAQ есть информация по подключению к БД
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В phpMyAdmin доступ проверили ? может нет прав у юзера БД
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Кстати, а народ то правильно пишет -после переноса файлов\базы на другой хостинг - NS записи домена изменили?
Может вы старую базу грохнули, а обращение по домену идет на старый хост.

В общем я других вариантов не вижу, либо неправильный логин\пароль, либо неправильный localhost, либо права юзверя БД либо вообще обращаетесь не к тому серверу.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
А кто хостер? Обычно у них где нить в FAQ есть информация по подключению к БД
Своя машина в локалке
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
В phpMyAdmin доступ проверили ? может нет прав у юзера БД
Конечно проверил, даже под рутом безрезультатно
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
Кстати, а народ то правильно пишет -после переноса файлов\базы на другой хостинг - NS записи домена изменили?
Может вы старую базу грохнули, а обращение по домену идет на старый хост.

В общем я других вариантов не вижу, либо неправильный логин\пароль, либо неправильный localhost, либо права юзверя БД либо вообще обращаетесь не к тому серверу.
Если в хосте прописать нужный хост и нужный ип то днс не обазательно править, хотя днс изменил пару дней назад, явно уже запись обновилась
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Если в хосте прописать нужный хост и нужный ип
Прошу простить, а где в конфиге прописываете IP, нет там такого?
Если система на локалке - то только себя и спрашивать, как мне подключиться к БД.
Можно банально попробовать любой скрипт для проверки подключения
Код
<?php
$server = 'localhost';
$user = 'dbuser';
$password = 'dbpass';

$dblink = mysql_connect($server, $user, $password);

if($dblink)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');

$database = 'dbbase';
$selected = mysql_select_db($database, $dblink);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
?>
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

kot488

  • Захожу иногда
  • 53
  • 0 / 0
Прошу простить, а где в конфиге прописываете IP, нет там такого?
Если система на локалке - то только себя и спрашивать, как мне подключиться к БД.
Можно банально попробовать любой скрипт для проверки подключения
Код
<?php
$server = 'localhost';
$user = 'dbuser';
$password = 'dbpass';

$dblink = mysql_connect($server, $user, $password);

if($dblink)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');

$database = 'dbbase';
$selected = mysql_select_db($database, $dblink);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
?>
На линукс открываете файл /etc/hosts или Win c:/windows/system32/drivers/etc/hosts и пишите сюда ип и домен
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос действующего в локал. Fatal error cachelite.php

Автор вуглускр

Ответов: 1
Просмотров: 524
Последний ответ 13.05.2025, 20:33:39
от вуглускр
Перенос сайта Joomla с одного локального сервера на другой

Автор beren

Ответов: 7
Просмотров: 7343
Последний ответ 16.05.2019, 12:59:24
от beren
После установки Мастер установки j2.5 выходит в странном виде

Автор dir.repart

Ответов: 7
Просмотров: 3711
Последний ответ 25.02.2019, 20:37:04
от voland
ошибка после обновления c Joomla 2.5 до 3

Автор akondr

Ответов: 23
Просмотров: 10959
Последний ответ 02.04.2018, 19:08:36
от SeBun
После обновления не работает модуль

Автор virtualov

Ответов: 3
Просмотров: 2143
Последний ответ 20.11.2017, 08:29:32
от Adisanut