Различные вопросы по PHP и MySQL

243K
.
(\/)____o_O____(\/)
Swank, одну строку изменить, а так и запрос тот же, по сути класс будет работать с любой таблицей, изначально даже хотел еще сделать для любых таблиц с данной структурой. но потом забил, имя таблицы поменять на нужную еще в запросе, там получаешь массив, имен и идов, и этого формирует ссылки
.
Сексуальность валенка
Koenig, О_о в php есть рекурсивность, незнал, мечтал об этом
.
(\/)____o_O____(\/)
Swank, это самый простой способ, сначала я пробовал процедуры в мускуле, там временные таблицы и прочее, но как то не красиво получилось, и по мне не удобно, хоть процедуры в мускуле чем то напоминают компилируемые языки
.
Сексуальность валенка
Koenig, Все работает
.
Сексуальность валенка
У меня есть еще проблемка одна.
Вот есть у меня класс DB он наследует PDO
Этот класс у меня в отдельном файле
Этот файл я инклудю в другой файл(init.php) и в init.php делаю $db = new DB;
Также в init.php инклуюеться другие классы, так в этих других классах я не могу юзать класс DB мне приходится делать переменную $db глобальной
Мне кажется что global юзать нежилательно ибо это както неправильно.
Как сделать чтоб не юзать globale?
Делать $db = new DB; именно там где я юзаю базу? Юзать всеже globale? или может у меня вообще архитектура папок/файлов и мне надо реорганизовать ее?
.
(\/)____o_O____(\/)
Swank, если без велосипеда, то нужно делать синглетон и получать инстанцию класса уже в классе, например в конструктор записывать дб в свойство и работать уже как с локальным объектом, хотя сам привык глобалить, так проще по мне, как синглетон сделать найдешь? еще нужен будет автозагрузчик классов
.
(\/)____o_O____(\/)
Swank, первая ссылка в гугле http://tonylandis.com/php/php5 ... lass/
.
# Swank (26.04.2015 / 16:59)
У меня есть еще проблемка одна.
Вот есть у меня класс DB он наследует PDO
Этот класс у меня в отдельном файле
Этот файл я инклудю в другой файл(init.php) и в init.php делаю $db = new DB;
Также в i
man dependency injection container
.
Folour
Think different
Я себе замутил полностью статическую обертку PDO, есть все функции основного класса PDO
DB class (+/-)


Использование:
//Где-то в главном скрипте системы
use \Folour\system\DB;

DB::init([
    'user' => 'user', //DB user
    'password' => 'qwerty', //DB password
    'db' => 'database', //DB name
    'server' => 'localhost', //DB host
    'driver' => 'mysql', //DB driver
    'charset' => 'utf8', //DB charset
    'options' => [ //PDO options
        \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        \PDO::ATTR_PERSISTENT => true
    ],
    'fetchMode' => \PDO::FETCH_OBJ, //PDO fetch mode
    'errorMode' => \PDO::ERRMODE_EXCEPTION //PDO error mode
]);


//затем в любом месте
DB::fetch("SELECT * FROM table WHERE id=1"); //получаем одну запись
DB::fetchAll("SELECT * FROM table LIMIT 10"); //получаем 10 записей
DB::fetchColumn("SELECT name FROM table WHERE id=1"); //получаем значение одного поля
//ну и так далее, все методы присутствуют и называются также
.
Сексуальность валенка
Я так понял что для того чтоб юзать Dependency Injection conteiner мне надо понимать такие понятия как interface и abstract.
А я вообще не понимаю чем отличается абстракный класс от обычного или что такое интерфейс
Прийдется изучать(
Всего: 7969