Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

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

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Прошу помощи!
Код: php
defined( '_JEXEC' ) or die( 'Restricted access' );

$db =& JFactory::getDBO();
$user =& JFactory::getUser();

$usname = $user->username;
$id = $user->id;

$params = new JParameter($user->params);
$value = $params->get('someParam');
if($value==''){
$db->setQuery("INSERT INTO #__users (params) VALUES('lastLevels=0\r\n') WHERE id = '$id' ");
$db->query();
echo $db->stderr();
}
Задачка простая: Если в "params" не записаны нужные мне параметры, то нужно их записать.
Но получаю:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '63'' at line 1 SQL=INSERT IGNORE INTO jos_users (params) VALUES('lastLevels=0 ') WHERE id = '63' "
Где я не прав?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #1 : 04.03.2010, 20:31:43 »
Код: sql
INSERT INTO #__users params VALUES('lastLevels=0\r\n') WHERE id = '$id'
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #2 : 04.03.2010, 21:48:47 »
Нет, к сожалению, результат тот же :(
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #3 : 04.03.2010, 21:53:09 »
Так минуту, что то я невнимательно посмотрел.
Вы делаете INSERT INTO и вставляете только значение поля params, а так делать нельзя.
Насколько позволяют мои скромные знания вам нужно писать что-то вроде
Код: php
$db->setQuery("UPDATE #__users SET params = 'lastLevels=0\r\n' WHERE id = '$id' ");
То есть проводить обновление записи для строки $id.
Ну и если я правильно понял фразу "Если в "params" не записаны нужные мне параметры, то нужно их записать" необходимо добавить проверку на пустоту поля как то так :)
Код: php
$db->setQuery("UPDATE #__users SET params = 'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");

В итоге окончательный вариант мне видится таким (для обновления существующих данных)
Код: php
$db->setQuery("UPDATE #__users SET params = params+'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #4 : 04.03.2010, 22:59:03 »
там вроде о проверке параметров ничего не было :) и изначально он тупо запихивал туда значение lastLevels=0.
а ошибка идет из-за синтакса, Т.к. намудрил с кавычками. Так что надо либо писать нормально, либо пытаться экранировать.
Код
$query = 'INSERT INTO #__users (params) VALUES ("lastLevels=0\r\n") WHERE id =' . (int) $id;
$db->setQuery($query);
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #5 : 04.03.2010, 23:00:46 »
Так он изначально пытается построить неправильный запрос по своей сути, ну нельзя так делать (либо я чего то не знаю)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #6 : 04.03.2010, 23:07:58 »
Так он изначально пытается построить неправильный запрос по своей сути, ну нельзя так делать (либо я чего то не знаю)
да действительно неправильно.
Чего-то я уже туплю :) забыл про SET.
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #7 : 04.03.2010, 23:08:18 »
Все варианты хороши. Получил : "DB function reports no errors"
Но в базе запись не появилась. ?
beliyadm: именно эта мысль у меня и крутиться, но а как надо?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #8 : 04.03.2010, 23:09:52 »
сделайте запрос отдельной переменной, сделайте ее эхо, посмотрите на содержание, попробуйте его руками исполнить в пхпмайадмин..
в общем надо вникать, я дал правильное направление, дальше изучайте
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #9 : 04.03.2010, 23:15:10 »
Да кстати новой записи у вас и не должно появиться, потому что судя по первому посту мы говорим про обновление существующих записей в таблице, хотите добавлять новую (нового пользователя) - так пишите полностью INSERT, при этом надо иметь в виду что данные пользователя хранятся в нескольких таблицах http://joomlaportal.ru/content/view/1381/68/
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #10 : 04.03.2010, 23:20:54 »
Так,где-то я рядом. Пробую
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #11 : 04.03.2010, 23:28:11 »
Ага. В качестве обновления запрос вида:
Код
$db->setQuery("UPDATE #__users SET params = params+'lastLevels=0\r\n' WHERE params <> '' AND  id = '$id' ");
сработал.Правда стер все вписанные параметры и оставил только '0' даже без имени.
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #12 : 04.03.2010, 23:37:13 »
Вобщем-то мне и не нужно добавлять пользователя.Нужно только обновлять данные.
Без опыта с синтаксисом можно играться бесконечно. Так что прошу помощи у спецов.
В базу проходит только "0", независимо от значения, которое я даю.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #13 : 04.03.2010, 23:39:47 »
скорей всего проблема в синтаксисе (кавычки), можно еще работать с функцией concat для объединения текущей строки и существующей
Но а если же для данной записи уже есть какое либо значение lastLevels - придется еще исхитряться и работать через replace и регулярные выражения
Самый примитивный вариант - заранее сделать SELECT этого поля, найти соответствия, заменить при необходимости (на PHP естессно) и после вставлять через UPDATE всю строку
Цитировать
Без опыта с синтаксисом можно играться бесконечно. Так что прошу помощи у спецов.
а как вы хотели получить опыт :)
Могу пригласить на форум http://sql.ru/forum/actualforum.aspx - вот там монстры баз данных обитают, сам частенько заглядываю
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #14 : 04.03.2010, 23:49:29 »
Насчет опыта - вы абсолютно правы.
Я из с-программистов. Там опыта предостаточно. Путь через SELECT очень сишный. Я просто наивно надеялся что в этой задаче есть путь покороче.
Тут проблемка видна сразу. Чтоба я не вписывал на месте параметр=значение , в базе стирается все и появляется "0".
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #15 : 04.03.2010, 23:53:11 »
Тут проблемка видна сразу. Чтоба я не вписывал на месте параметр=значение , в базе стирается все и появляется "0".
а если тупо?
Код: sql
$db->setQuery("UPDATE #__users SET params = 'какая-то тупая строка просто для примера'  WHERE id = '$id' "); 
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #16 : 04.03.2010, 23:57:56 »
Почему же тупо! Да вы гений.Огромнейшая благодарность!
Запись зашла!
Буду развивать в эту сторону.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #17 : 04.03.2010, 23:59:36 »
Почему же тупо! Да вы гений.Огромнейшая благодарность!
Запись зашла!
Буду развивать в эту сторону.
значит как и говорил проблема в кавычках, строку же надо экранировать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

vadimled

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: "You have an error in your SQL syntax" - Почему?
« Ответ #18 : 05.03.2010, 00:01:47 »
Я вам там карму изменил в благодарность. Надеюсь в правильную сторону :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему статья не отображается

Автор bazabaza

Ответов: 8
Просмотров: 13343
Последний ответ 14.05.2025, 10:52:43
от antivampoed
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1954
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Fatal error: Class 'JDocument' not found

Автор gabiboi

Ответов: 2
Просмотров: 2445
Последний ответ 04.09.2020, 14:39:07
от svetka_777
simpleform2 ошибка ajax error в Google chrome

Автор safronoff343

Ответов: 1
Просмотров: 1298
Последний ответ 05.06.2020, 20:36:42
от safronoff343
Ошибка Fatal error: Allowed memory size of 73400320 bytes exhausted

Автор Andre109

Ответов: 1
Просмотров: 2208
Последний ответ 03.12.2018, 01:29:56
от voland