ua1907 0 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 <? include ('engine/api/api.class.php'); $Res = $db->super_query("Запрос к БД");?> Нужно сделать один запрос к БД из файла. Такой файл если создам, будет корректно работать? Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 Нет. Обращаться к апи надо иначе. Только вот запрос будет прекрасно работать и без апи, если конечно мы находимся в среде дле. Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 Автор Это абсолютно новый файл создаю для крон, чтобы выполнить один запрос к БД. Как лучше сделать? Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 Я имею ввиду вот что - где-то до этого подключен движок, т.е. новый файл подключается к крону движка? Тогда просто использовать $db->super_query А если подключения движка нигде раньше нет, то тогда можно использовать апи. Только тогда класс $db станет одним из атрибутов класса апи. Т.е. типа этого: апи->db->super_query Гляньте для этого исходник апи и всё станет ясно. Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 Автор <? include ('engine/api/api.class.php'); $Res = $dle_api->$db->super_query("Запрос к БД");?> Так должно работать? А что лучше к крону дле подключить или крон хостинга использовать. Скрипт вызывать нужно 1 раз в месяц. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 067 Опубликовано: 4 октября 2009 Рассказать Опубликовано: 4 октября 2009 А что лучше к крону дле подключить или крон хостинга использовать. Скрипт вызывать нужно 1 раз в месяц. У скрипта нет крона "раз в месяц".Так должно работать? должно Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 5 октября 2009 Рассказать Опубликовано: 5 октября 2009 Автор Не работает. Написал код внутри системы ДЛЕ, а теперь не знаю как его запускать раз в месяц в кроне. Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 5 октября 2009 Рассказать Опубликовано: 5 октября 2009 Автор Сейчас думаю в api создать функцию, а потом только вызывать ее. В файле engine/api/api.class.php как можно обратиться к БД? Пробую так, но не работает. function mod($my) { $row = $this->db->super_query(... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 067 Опубликовано: 5 октября 2009 Рассказать Опубликовано: 5 октября 2009 ua1907, Скрипт вам так и пишет: "Я не работаю"? Смотреть нужно ошибку которую вам выдает PHP интерпретатор. Цитата Ссылка на сообщение Поделиться на других сайтах
Al-x 7 Опубликовано: 5 октября 2009 Рассказать Опубликовано: 5 октября 2009 должно НЕ ДОЛЖНО. Сравните, что я вам написал: апи->db->super_query и что у вас: $Res = $dle_api->$db->super_query("Запрос к БД");?> Разницу видите? (моё "апи" = вашему "$dle_api", тут всё верно, а вот дальше..) Собственноручно обнаруженая ошибка в 10 раз лучще запомниться на будущее, так что смотрите внимательно мой и свой вариант.ua1907, Скрипт вам так и пишет: "Я не работаю"? Смотреть нужно ошибку которую вам выдает PHP интерпретатор. скорее всего скрипт говорит, что метод super_query не определён. Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 5 октября 2009 Рассказать Опубликовано: 5 октября 2009 Автор А нет. заработало. именно так.$row = $this->db->super_query( так работает, Al-x прав. Другая ошибка была.Спасибо всем Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 6 октября 2009 Рассказать Опубликовано: 6 октября 2009 Советую кстати внутри класса API ничего не трогать, так как при обновлении Ваши изменения слетят. Что мешает сделать внешнюю функцию и применить global $dle_api; ? Цитата Ссылка на сообщение Поделиться на других сайтах
ua1907 0 Опубликовано: 6 октября 2009 Рассказать Опубликовано: 6 октября 2009 Автор При обновлении вообще все модули слетят. Надо будет заного изменения вносить в исходные файлы. А не работало изначально потомучто, в этом примере лишний символ бакса был перед db. Можно было бы класс api и не править, но так даже симпотичней получилось. <? include ('engine/api/api.class.php'); $Res = $dle_api->$db->super_query("Запрос к БД");?> Так должно работать? Цитата Ссылка на сообщение Поделиться на других сайтах
IT-Security 33 Опубликовано: 6 октября 2009 Рассказать Опубликовано: 6 октября 2009 При обновлении если использовать сниппеты, то ничего не слетит. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.