Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пользовательские функции PHP + MySQLi, Не работаеют sql запросы внутри функций 
:(
    Опции темы
ZloiKombat
Дата 14.1.2014, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.2.2011

Репутация: нет
Всего: нет



Доброго времени суток.

Помогите пожалуйста решить задачку.
Возможно я просто что то упускаю из вида, но не могу никак заставить 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; - Так пробовал, не помогло.
PM MAIL   Вверх
Fortop
Дата 14.1.2014, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Передать собственно этот $connect в виде параметра в функцию религия не позволяет?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
AVA12
Дата 14.1.2014, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: 0
Всего: 4



Цитата
global $connect; - Так пробовал, не помогло.

Это потому, что переменная на самом деле не глобальная.

Этот файл подключается внутри какой-то функции и, соответственно, работает в контексте той функции, и объявляемые в нем переменные по умолчанию являются локальными. Простейшее решение проблемы - везде объявлять эту переменную как глобальную.
PM ICQ Jabber   Вверх
ZloiKombat
Дата 14.1.2014, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.2.2011

Репутация: нет
Всего: нет



Цитата(Fortop @ 14.1.2014,  16:07)
Передать собственно этот $connect в виде параметра в функцию религия не позволяет?

В смысле так что ли?

$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 секунды
Цитата(AVA12 @ 14.1.2014,  16:33)
Цитата
global $connect; - Так пробовал, не помогло.

Это потому, что переменная на самом деле не глобальная.

Этот файл подключается внутри какой-то функции и, соответственно, работает в контексте той функции, и объявляемые в нем переменные по умолчанию являются локальными. Простейшее решение проблемы - везде объявлять эту переменную как глобальную.

Не улавливаю мысль, о каком файле идет речь?
PM MAIL   Вверх
Gold Dragon
Дата 14.1.2014, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а так пашет?

Код

$connect = new mysqli("localhost", "логин", "пароль", "база");
$connect->set_charset("utf8");
$string = 10;
$turr = $connect->query("SELECT `id` FROM `table` WHERE `id`='".$string."';");
echo $turr['id'];




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
ZloiKombat
Дата 14.1.2014, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 19.2.2011

Репутация: нет
Всего: нет



Gold Dragon, Так пашет.

Добавлено через 54 секунды
Проблема была моя не внимательность, всем спасибо за помощь, решение найдено.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.