PHP.SU

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

Страниц (93): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 1388
Okula Отправлено: 15 Августа, 2013 - 13:38:43 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
DeepVarvar пишет:
Народ, не грузите вы человека, пусть сперва функции прохавает..

Ну а что? Если он C++ знает, а это объектный язык то пусть и пишет в привычной для себя форме. Думаю с объектами ему будет проще работать.
Okula Отправлено: 15 Августа, 2013 - 12:54:16 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
armancho7777777, можно))) Это не суть как важно здесь. Главное показать пример)
Okula Отправлено: 15 Августа, 2013 - 12:45:51 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
lexdevel, нужно было создать подключение к базе данных в патерне singleton тогда и подключение будет доступно отовсюду.
Вот пример этого патерна:
PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Класс соединения с БД
  3.  */
  4. class connectDB {
  5.    
  6.     private static $instance = NULL;
  7.     private $server = 'localhost', // сервер
  8.             $username = 'root', // имя пользователя
  9.             $password = '', // пароль
  10.             $basename = '', // имя базы данных
  11.             $charset = 'utf8', // кодировка соединения
  12.             $mysqli; // ссылка на соединение
  13.  
  14.     /**
  15.      * Конструктор
  16.      * @throws \Exception
  17.      */
  18.     private function __construct() {
  19.         $this->mysqli = @new mysqli($this->server, $this->username, $this->password, $this->basename);
  20.  
  21.         if($this->mysqli->connect_errno !== 0)
  22.             throw new \Exception($this->mysqli->connect_error);
  23.  
  24.         $this->mysqli->set_charset($this->charset);
  25.     }
  26.     private function __clone() {}
  27.     private function __wakeup() {}
  28.    
  29.     /**
  30.      * Регистрация патерна
  31.      * @return \connectDB
  32.      */
  33.     public static function registory() {
  34.         if(self::$instance == NULL) {
  35.             self::$instance = new self();
  36.         }
  37.        
  38.         return self::$instance;
  39.     }
  40.    
  41.     /**
  42.      * Получение ссылки на соединение
  43.      * @return \mysqli
  44.      */
  45.     public function linkDB() {
  46.         return $this->mysqli;
  47.     }
  48.    
  49. }

А там где нужно получить ссылку на соединение:
PHP:
скопировать код в буфер обмена
  1. try {
  2.     // получить ссылку на соединение с БД
  3.     $mysqli = connectDB::registory()->linkDB();
  4.    
  5.     // ......
  6.    
  7. } catch(Exception $err) {
  8.     echo $err->getMessage();
  9. }
Okula Отправлено: 15 Августа, 2013 - 00:33:44 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
DeepVarvar пишет:
Тебе никогда тесно в пыхе не было?

Бывало, но не так часто, там более если учесть как язык развивается в последнее время.
Okula Отправлено: 15 Августа, 2013 - 00:28:50 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
lexdevel, что бы переменная стала глобальная (была видна в любой области видимости) её нужно записать в суперглобальный массив $GLOBALS или же использовать ключевое слово global как я делал в своём примере.
Если переменна находится не в функции, а просто в php файле - это не значит что она в глобальной области видимости. Она в области видимости этого файла, а если уже подключить этот файл с помощью include (или каким другим способом) она будет находится в области видимости файла в котором было произведено подключение, но никак не в области видимости функции описанной в этом же файле.
Okula Отправлено: 15 Августа, 2013 - 00:15:56 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
DeepVarvar, ну там у меня хотябы понятно для чего классы и методы писались, а тут функция ради функции.
lexdevel, почему не логично? У каждой функции, класса, метода класса своя область видимости. Область видимости не ограничивается файлом.
Okula Отправлено: 15 Августа, 2013 - 00:09:34 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
DeepVarvar, лучше уж отказаться от этой функции вообще. А global я привёл как пример.
Okula Отправлено: 15 Августа, 2013 - 00:02:41 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
Ну а вообще я не вижу необходимости в создании этой функции. Если уж взялся писать всё в структурном стили то и пиши так. У тебя же получается что ты пытаешься создать функцию ради функции.
Okula Отправлено: 14 Августа, 2013 - 23:59:48 • Тема: Вызов функции, в которой есть SQL из другого файла • Форум: Вопросы новичков

Ответов: 44
Просмотров: 768
lexdevel, ничего у тебя не будет видно.
Переменные $mysql_host, $mysql_user, $mysql_pass и $mysql_base не видны внутри функции registerUser() потому что у них разные области видимости.
Как заставить их быть видными внутри функции: использовать ключевое слово global
Выглядеть будет так:
PHP:
скопировать код в буфер обмена
  1. $mysql_host = ""; // Host
  2. $mysql_user = ""; // User
  3. $mysql_pass = ""; // Password
  4. $mysql_base = ""; // Database Name
  5.  
  6.  
  7. function registerUser($login, $password) {
  8.     global $mysql_host, $mysql_user, $mysql_pass, $mysql_base;
  9.     $link = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_base);
  10.     // ... etc
  11.     // if some error -> return false;
  12.     mysqli_close($link);
  13.     return true;
  14. }

Вот теперь всё будет работать. Но использовать ключевое слово global крайне не рекомендуется, это деает код жёстко привязанным и не удобным. В дальнейшем такой код будет сложно модифицировать.
Okula Отправлено: 14 Августа, 2013 - 23:47:35 • Тема: Время с ubuntu • Форум: Администрирование *nix

Ответов: 5
Просмотров: 1676
STil, не отображается время, а что тогда пишет?
Linux - это ядро которое использует ОС Ubuntu. Linux много кто берёт за основу.
Okula Отправлено: 14 Августа, 2013 - 23:26:40 • Тема: Время с ubuntu • Форум: Администрирование *nix

Ответов: 5
Просмотров: 1676
STil, почему не подходят?
Okula Отправлено: 14 Августа, 2013 - 18:58:30 • Тема: Маршрутизация • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 7147
Hapson, зависит от железа и от качества кода.
Okula Отправлено: 14 Августа, 2013 - 18:25:26 • Тема: Маршрутизация • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 7147
Hapson, только пиши microtime(TRUE); конечно единица тоже = TRUE, но входной аргумент у функции в формате bool.
Okula Отправлено: 13 Августа, 2013 - 18:45:10 • Тема: Маршрутизация • Форум: Объектно-ориентированное программирование

Ответов: 46
Просмотров: 7147
Hapson, ну если уж с регулярками всё плохо то тогда не стоит писать свой роутер. Там регулярки будут везде и всюду и если ты не научишься с ними работать ничего толкового сделать не выйдет.
Okula Отправлено: 13 Августа, 2013 - 00:05:25 • Тема: Как в glob() указать путь от корня сайта? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 313
Если версия PHP выше или равна 5.3 код

Можно заменить константой __DIR__

Страниц (93): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB