Перейти к содержимому



Пользовательские функции PHP + MySQLi

#1 ZloiKombat

ZloiKombat
  • Пользователь
  • 3 сообщений
  • Репутация: 0
0

Отправлено 14 Январь 2014 - 12:30

Доброго времени суток.
Помогите, пожалуйста, решить задачку.
Возможно, я просто что-то упускаю из вида, но не могу никак заставить 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; - Так пробовал, не помогло.

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 14 Январь 2014 - 14:23

Здравствуйте.
Вы бы выложили текст ошибок, которые вылазят на страницу. Если ошибки не показываются, тогда нужно включить показ ошибок.
По теме:
1. В функцию все же нужно передавать объект соединения или брать его из глобальной области.
2. Для того, чтобы функция вернула массив, этот массив нужно вначале получить из результат запроса.
3. Если в запросе используется число (а для ID это так), то заключать его в кавычки совсем не обязательно... и точка с запятой там лишние.
Так должно работать:
$connect = new mysqli("localhost", "логин", "пароль", "база");
$connect->set_charset("utf8");
function anti($string)
{
global $connect; // получаем объект соединения
$turr = $connect->query("SELECT `id` FROM `table` WHERE `id`=$string");
    $turr = $turr->fetch_assoc(); // получаем массив
    return $turr['id']; // возвращаем элемент массива
}
echo anti(10);

  • 0


#3 ZloiKombat

ZloiKombat
    Topic Starter
  • Пользователь
  • 3 сообщений
  • Репутация: 0

Отправлено 14 Январь 2014 - 17:45

matroskin8, Большое спасибо за помощь. Я то fetch_assoc забывал дописать, то его дописал, но global пропустил. Короче глючит меня, вокруг да около ходил. Спасибо что помог связать картинку.
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 14 Январь 2014 - 18:37

Пожалуйста.
  • 0



Оформление форума – IPBSkins.ru