| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Пользовательские функции PHP + MySQLi |
| Автор: ZloiKombat 14.1.2014, 12:16 |
| Доброго времени суток. Помогите пожалуйста решить задачку. Возможно я просто что то упускаю из вида, но не могу никак заставить MySQLi запросы работать внутри пользовательских функций. Вот пример: $connect = new mysqli("localhost", "логин", "пароль", "база"); $connect->set_charset("utf8"); function anti($string) { $turr = $connect->query("SELECT `id` FROM `table` WHERE `id`='".$string."';"); return $turr['id']; } echo anti(10); Подобное наотрез отказывается работать на сайте. Обрезает страницу, предположительно? не хочет работать потому что не видит переменную $connect. В остальном с MySQLi проблем по сайту нет, работает везде как часы, кроме пользовательской функции(( P.S global $connect; - Так пробовал, не помогло. |
| Автор: Fortop 14.1.2014, 16:07 |
| Передать собственно этот $connect в виде параметра в функцию религия не позволяет? |
| Автор: AVA12 14.1.2014, 16:33 | ||
Это потому, что переменная на самом деле не глобальная. Этот файл подключается внутри какой-то функции и, соответственно, работает в контексте той функции, и объявляемые в нем переменные по умолчанию являются локальными. Простейшее решение проблемы - везде объявлять эту переменную как глобальную. |
| Автор: ZloiKombat 14.1.2014, 16:47 | ||||||
В смысле так что ли? $connect = new mysqli("localhost", "логин", "пароль", "база"); $connect->set_charset("utf8"); function anti($string,$string2) { $turr = $string2 -> query("SELECT `id` FROM `table` WHERE `id`='".$string."';"); return $turr['id']; } echo anti(10,$connect); Проверял, не пашет. Добавлено через 3 минуты и 52 секунды
Не улавливаю мысль, о каком файле идет речь? |
| Автор: Gold Dragon 14.1.2014, 18:06 | ||
а так пашет?
|
| Автор: ZloiKombat 14.1.2014, 18:51 |
| Gold Dragon, Так пашет. Добавлено через 54 секунды Проблема была моя не внимательность, всем спасибо за помощь, решение найдено. |