Страница 1 из 2
Приложение Cron
Добавлено: Ср мар 08, 2017 9:19 am
adzam
Почему если в Crone запланировать какое-либо задание то при сохранении вверху экрана пишет ошибку,в принцепе все работает но при каждом сохранении ругается.
Это у меня что-то не так или так должно быть?

- Безымянный.png (61.34 КБ) 9471 просмотр
Re: Приложение Cron
Добавлено: Ср мар 08, 2017 2:33 pm
xor
Не ругается, а предупреждает
c:\_majordomo\htdocs\lib\mysqli.class.php
Код: Выделить всё
/**
* Execute SQL SELECT query and return first record
*
* This method returns record assosiated array (by field names)
*
* @param string $query SQL SELECT query
* @return array|void execution result
* @access public
*/
public function SelectOne($query)
{
if ($result = $this->Exec($query))
{
$rec = mysqli_fetch_array($result, MYSQL_ASSOC); //<----------------
return $rec;
}
else
{
$this->Error($query);
}
}
Может, подправить надо после перехода на mysqli?
http://www.php.su/mysqli_fetch_array
Код: Выделить всё
/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); //<-----------------------------
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
Попробуйте поменять MYSQL_ASSOC на MYSQLI_ASSOC, перегрузитесь, если варнинг уйдет, Сергею напишите.
Re: Приложение Cron
Добавлено: Ср мар 08, 2017 9:44 pm
xor
нет, там, вроде, это учтено
в c:\_majordomo\htdocs\lib\mysqli.class.php
Код: Выделить всё
if (!defined('MYSQL_BOTH')) {
define('MYSQL_BOTH',MYSQLI_BOTH);
define('MYSQL_NUM',MYSQLI_NUM);
define('MYSQL_ASSOC',MYSQLI_ASSOC);
}
Re: Приложение Cron
Добавлено: Чт мар 09, 2017 11:44 am
Ged
Постою, послушаю.
Re: Приложение Cron
Добавлено: Чт мар 09, 2017 9:52 pm
adzam
А у меня в папке C:\_majordomo\htdocs\lib есть оба файла
mysql.class.php и
mysqli.class.php.
может должен быть только один?

- 1.jpg (74.98 КБ) 9318 просмотров
Re: Приложение Cron
Добавлено: Чт мар 09, 2017 10:06 pm
adzam
xor писал(а):
Попробуйте поменять MYSQL_ASSOC на MYSQLI_ASSOC, перегрузитесь, если варнинг уйдет, Сергею напишите.
Попробовал поменял, но предупреждение по прежнему выходит
Re: Приложение Cron
Добавлено: Пт мар 10, 2017 1:50 am
xor
Результаты разбора:
Что сделал:
в файле mysqli.class.php наставил отладок вокруг 211 строки:
Код: Выделить всё
public function SelectOne($query)
{ echo $query."<br>"; ////////////////////////////////////////////////////////////////////////
if ($result = $this->Exec($query))
{
$rec = mysqli_fetch_array($result, MYSQL_ASSOC);
print_r($rec); ///////////////////////////////////////////////////////////////////////////
echo "<br>"; ///////////////////////////////////////////////////////////////////////////
return $rec;
}
else
{
$this->Error($query);
}
}
получил вот:
(квадратные скобки вокруг CODE заменил на {}, а то коряво форматируется сдесь)
Код: Выделить всё
SELECT * FROM methods WHERE ID='105'
Array ( [ID] => 105 [OBJECT_ID] => 0 [CLASS_ID] => 35 [TITLE] => Update [DESCRIPTION] => Обновление задачи {code} => $name='Cron_'.$this->object_title; SQLSelectOne("DELETE FROM jobs WHERE title='".$name."'"); [CALL_PARENT] => 0 [SCRIPT_ID] => 0 [EXECUTED] => 2017-03-10 01:16:22 [EXECUTED_PARAMS] => a:5:{s:8:"PROPERTY";s:6:"Enable";s:9:"NEW_VALUE";s:1:"0";s:9:"OLD_VALUE";s:1:"0";s:6:"SOURCE";s:0:"";s:21:"ORIGINAL_OBJECT_TITLE";s:12:"Собаки";} )
DELETE FROM jobs WHERE title='Cron_Собаки'
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\_majordomo\htdocs\lib\mysqli.class.php on line 211
Видим, что варнинг выскакивает после безобидного DELETE FROM jobs WHERE title='Cron_Собаки'
Но, выше видно, что это вызывается кодом
Код: Выделить всё
SQLSelectOne("DELETE FROM jobs WHERE title='".$name."'")
что подразумевает возврат одной записи.
Полез в базу, выполнил запрос SELECT * FROM methods WHERE ID='105'
и поменял в поле CODE
SQLSelectOne на
SQLExec("DELETE FROM jobs WHERE title=''".$name."''")
Варнинг убрался, но, естественно, только для этой задачи.
Надо, наверное, автору Крона сообщить
Re: Приложение Cron
Добавлено: Пт мар 10, 2017 9:43 am
Eraser
в модуле исправил
Re: Приложение Cron
Добавлено: Сб мар 11, 2017 9:10 am
adzam
Обновился но ничего не поменялось.
Warning все равно появляются.
Re: Приложение Cron
Добавлено: Сб мар 11, 2017 11:37 am
Eraser
adzam писал(а):Обновился но ничего не поменялось.
Warning все равно появляются.
есть 2 варианта
-переустановить модуль
-исправить в объекте "Cron" метод "Update" = заменить SQLSelectOne на SQLExec