Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переменные внутри функций

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как получить?
markos_dp_ua
Отправлено: 28 Июня, 2008 - 18:43:30
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




Здравствуйте!
есть такие файлы:
connect.php


func.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. function Example(){
  3. $query='select * from main;';
  4. $result=mysql_query($query, $_GLOBALS['link']);
  5. ...
  6. }
  7. ?>


main.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. include_once("./connect.php");
  3. include_once("./func.php");
  4. Example();
  5. ?>


При выполнении main.php получаю
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
Что я неправильно делаю?

(Отредактировано автором: 02 Июля, 2008 - 13:41:04)

 
 Top
valenok Модератор
Отправлено: 28 Июня, 2008 - 20:25:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?
  2. function Example(){
  3. global $link;
  4. $query='select * from main;';
  5. $result=mysql_query($query, $link);
  6. ...
  7. }


-----
Truly yours, Sasha.
 
My status
 Top
SION-ZENIT
Отправлено: 28 Июня, 2008 - 23:48:47
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


Помог: 0 раз(а)




А сделать линк глобальным забыли ...
 
 Top
scuter
Отправлено: 29 Июня, 2008 - 01:22:25
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Цитата:
А сделать линк глобальным забыли ...

если переменная оъявлена, значит она уже в глобале.
 
 Top
theos
Отправлено: 29 Июня, 2008 - 06:09:19
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




мне кажется что тут не в глобальности дело
а в области видимости - практически одно и тоже, но не совсем

global $link; - это самый правильный вариант в условиях переменной внутри функции, нежели $_GLOBALS['link']; потому что внутри функции возможно $_GLOBALS не видно
только если сделать
global $_GLOBALS;
ну это уже масло маслянное
 
 Top
Wange
Отправлено: 29 Июня, 2008 - 10:37:31
Post Id



Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Июль 2006  
Откуда: Екатеринбург


Помог: 0 раз(а)




Подход очень странный. Зачем такой странный вариант коннекта?
А не проще ли подключиться к БД в файле connect.php? А потом использовать это подключение.


-----
Не пытайся, делай
обучение, праздники
 
 Top
EuGen Администратор
Отправлено: 29 Июня, 2008 - 10:56:44
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вообще, старайтесь избегать использования глобальных переменных везде, где можно. В данном примере ресурс можно передавать в функцию параметром.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
markos_dp_ua
Отправлено: 02 Июля, 2008 - 13:39:23
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




Добавил

выдаёт "is not a valid MySQL-Link resource in ..."
В чем может быть дело?
 
 Top
valenok Модератор
Отправлено: 02 Июля, 2008 - 16:20:42
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




в неправильном подклбчении к БД
Сразу после подключения и выборки БД поставьте echo mysql_error();


-----
Truly yours, Sasha.
 
My status
 Top
markos_dp_ua
Отправлено: 02 Июля, 2008 - 16:52:19
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




valenok пишет:
в неправильном подклбчении к БД
Сразу после подключения и выборки БД поставьте echo mysql_error();


Скопипастил connect.php в функцию - всё работает...
Соотв. к базе подключается правильно.
 
 Top
SergeantPEPPER
Отправлено: 02 Июля, 2008 - 17:52:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Тогда все должно быть правильно.
Правда не видно к какой бд Вы подключаетесь...
У Вас после mysql_connect () должно следовать

После этого должно быть все ок.

Конечно же при условии, что

таблица main у Вас действительно существует.
 
 Top
valenok Модератор
Отправлено: 02 Июля, 2008 - 19:52:32
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Сюда его ещё скопируйте.


-----
Truly yours, Sasha.
 
My status
 Top
markos_dp_ua
Отправлено: 03 Июля, 2008 - 08:45:02
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




По-моему проблема из-за того, чтоне работают инклюды.
Может быть такое?


x.php

echo.php


Соотв. страница http://localhost/echo.php оказывается пустой.
 
 Top
valenok Модератор
Отправлено: 03 Июля, 2008 - 11:29:19
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Путь в инклуде значит указан не правильно.
Попробуйте просто include('x.php');


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB