За последние 24 часа нас посетили 115248 программистов и 3034 робота. Сейчас ищут 1635 программистов ...

DataMapper

Тема в разделе "PHP для новичков", создана пользователем Alex_1984, 20 июл 2015.

  1. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Узнал недавно про существование паттерна для работы с БД DataMapper, решил попробовать реализовать.

    Модель:
    Код (PHP):
    1. <span class="syntaxdefault">class model_user_dm<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    private   $user_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $user_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function set_user_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_name</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_id</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_id</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        echo $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_password</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $password</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_password</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">password</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br />}&nbsp;</span><span class="syntaxdefault"></span>
    Маппер:
    Код (PHP):
    1. <span class="syntaxdefault">class mapper_user<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    protected  $pdo </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    protected $users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function __construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pdo</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $pdo</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_users</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_user_dm $users</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $users</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_by_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT * FROM users WHERE id = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$r </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NUM</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">//echo $query;<br /></span><span class="syntaxdefault">            return $res</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        return null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br />}&nbsp;</span><span class="syntaxdefault"></span>
    Принцип работы:
    Код (PHP):
    1. <span class="syntaxdefault"><br />$db </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new db</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">DB_NAME</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> DB_PASSWORD</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> DB_USER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> DB_HOST</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $conn </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        $model_user </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_user_dm</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $mapper </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new mapper_user</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$conn</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $mapper</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_users</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$model_user</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        print_r</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$mapper</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_by_id</span><span class="syntaxkeyword">());<br />&nbsp;</span><span class="syntaxdefault"></span>
    Выводит Array ( [0] => Array ( [0] => 2 [1] => user [2] => 40bd001563085fc35165329ea1ff5c5ecbdbbeef [3] => 2 [4] => NoNameUser ) )

    Все как бы работает, но что то мне не нравится. Подскажите правильно ли я делаю, или все совсем не так?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Непонятки какие-то: где-то user у тебя объект, а где-то массив.
     
  3. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Где массив user? У меня тут вроде единственный массив это результат функции get_user_by_id.

    Я может вопрос не правильный задал. Правильна ли будет такая реализация паттерна DataMapper, или то что я написал к нему ни какого отношения не имеет?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Что за класс DB тоже непонятно. Вот реально, имеет значение для примера с маппером что у тебя в отдельном классе создается экземпляр PDO? Не думаю! А зачем ты это здесь изобразил?
    К тому же ты не к месту применил PdoStatesment::fetchAll. у тебя же одна запись считывается, при чем тут "all" ?

    Предназначение маппера скрывать особенности отображения объекта на базу. У тебя нет метода получения объекта из базы. Незачет!

    Добавлено спустя 1 минуту 12 секунд:
    Ну. А объект где? :) Незачет!

    Добавлено спустя 4 минуты 48 секунд:
    Глянь вот этот пример: http://stackoverflow.com/a/20820497/272885
     
  5. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Ну вот, об этом и спрашивал. То есть get_user_by_id должен получить данные юзера и записать в класс User_model и уже из User_model можно будет брать данные пользователя?
     
  6. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Давно хотел спросить. Зачем создавать private свойства и для них потом public функции, с помощью которых можно менять значения этих свойств. Вопрос не только к ТС, а ко всем кому не лень ответить. Ответ типа это инкапсуляция не принимается )
     
  7. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    например
    Код (PHP):
    1. <span class="syntaxdefault"><br />function set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_id</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_id </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">b</span><span class="syntaxkeyword">]+</span><span class="syntaxdefault"> 10</span><span class="syntaxkeyword">[/</span><span class="syntaxdefault">b</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"></span>
    в методе можно описать логику установки свойства
     
  8. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Так должно быть?
    модель:
    Код (PHP):
    1. <span class="syntaxdefault"><br />class model_users<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    private $table_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'users'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $login </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $email </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $role_id  </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function get_table_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">table_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault"></span>
    маппер
    Код (PHP):
    1. <span class="syntaxdefault"><br />class users_mapper<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    private $users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $pdo</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function __construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pdo</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $pdo</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_users</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_users $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_by_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT users.id, users.name, users.login, users.email, users.password, roles.name as role'<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">' FROM users, roles '<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">'WHERE users.role_id = roles.id and '<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">'users.id = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">users</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        $query_res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $query_res</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">users</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">users</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault"></span>
    использование
    Код (PHP):
    1. <span class="syntaxdefault"><br />        $model_users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_users</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        $model_users</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_id</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'2'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $users_mapper </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_users_mapper</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">());<br /><br /></span><span class="syntaxdefault">        $users_mapper</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_users</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$model_users</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $users_mapper</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_by_id</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        echo $model_users</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_name</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault"></span>
    но это если одного пользователя выбрать, а если всех, куда их писать?

    а если из двух таблиц надо данные выбрать? две модели создавать и два маппера?
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Если всех, датамаппер должен возвращать массив объектов User. Суть паттерна - специальный класс Mapper, который переводит записи из таблицы в объекты классов. Хотя я больше с ActiveRecord привык работать, поскольку он и в фреймворке Kohana, на котором я раньше писал, и в фреймворке Yii2, на котором пишу сейчас. Doctrine2 что-то у меня положительных эмоций не вызвала...
     
  10. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    ок, массив объектов понятно, а если из двух таблиц выбрать?

    допустим есть
    таблица roles id | name

    таблица users id | name | pass | role_id

    запрос select users.id, users.name, roles.name as roles from users, roles where users.role_id = roles.id
     
  11. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну поищите инфу, как DataMapper работает со связанными сущностями. Тут я без понятия, я его не использую в своей работе.

    Добавлено спустя 4 минуты 2 секунды:
    С другой стороны, ИМХО, никто не мешает мапить более одной таблицы на один объект.
     
  12. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Да я искал, в основном описание в один абзац и маленький пример, а где то и вообще без примера. Может на англоязычных ресурсах что то есть но у меня с английским плохо )) Вот и остается на форуме спрашивать

    Добавлено спустя 1 минуту 4 секунды:
    Да я искал, в основном описание в один абзац и маленький пример, а где то и вообще без примера. Может на англоязычных ресурсах что то есть но у меня с английским плохо )) Вот и остается на форуме спрашивать
     
  13. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Alex_1984, ты отрываешся от цели. твой вопрос про несколько таблиц не имеет смысла.
    это именно то, что должен прятать в себе маппер — неважно на сколько таблиц это проецируется и вообще есть ли таблицы, может быть там nosql или файловое хранилище внутри — это для всего остального мира черный ящик.
    принципиальное отличие DM от AR именно в большем уровне абстрагирования от способа хранения. объект Active Record — это запись в таблице. объект предметной области в DM это что угодно.

    твой класс по прежнему неполон. чтение одного экземпляра вроде есть, а его сохранение где? и неужели чтения по id достаточно для всех задач?
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    О, поутряне на трезвую голову заметил. Это вообще изврат какой-то.... DataMapper должен сам создавать объект, сам его заполнять, сам возвращать, а у вас что-то получается совсем уж странное
    Код (PHP):
    1. function get_by_id($id)
    2.     {
    3.         $query = 'SELECT users.id, users.name, users.login, users.email, users.password, roles.name as role'
    4.             . ' FROM users, roles '
    5.             . 'WHERE users.role_id = roles.id and '
    6.             . 'users.id = "'. ((int)$id) .'"';
    7.         $query_res = $this->pdo->query($query)
    8.         $result = $query_res->fetch(PDO::FETCH_ASSOC);
    9.         $user = new model_users;
    10.         $user->set_id($result["id"]);
    11.         $user->set_name($result["name"]);
    12.         return $user;
    13.     }
    14.  
    Что-то в этом роде должно быть (ну это на очень скорую руку, конечно)
     
  15. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Такой пример нашел )) в нем создавалась модель, передавалась в маппер и в нем заполнялась

    немного доделал

    Код (PHP):
    1. <span class="syntaxdefault"><br />Модель<br /><br />class model_user<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    private $user_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $user_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $user_login </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $role_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $table_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'users'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    private $related_table_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'roles'</span><span class="syntaxkeyword">;<br /><br /><br /></span><span class="syntaxdefault">    function set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_id</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_id</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        echo $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_user_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_name</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_user_login</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user_login</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_login </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user_login</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_login</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">user_login</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_password</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$password</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">password </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $password</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_password</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">password</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_role</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$role</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $role</span><span class="syntaxkeyword">;<br />}<br /><br /></span><span class="syntaxdefault">    function get_role</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">role</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function set_role_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$role_id</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">role_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $role_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_role_id</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">role_id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_table_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">table_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_related_table_name</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">related_table_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}</span><span class="syntaxdefault"> <br /></span>
    Код (PHP):
    1. <span class="syntaxdefault"><br />Маппер<br />class mapper_user<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    protected  $pdo </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function __construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pdo</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $pdo</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_by_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_user $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT users.id, users.name, users.login, users.password, users.role_id, roles.name as role<br />                  FROM '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">', '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_related_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'<br />                  WHERE users.id = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'" and users.role_id = roles.id'</span><span class="syntaxkeyword">;<br /><br /><br /></span><span class="syntaxdefault">        $user </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_user</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">//echo $query;<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$r </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /><br /><br /></span><span class="syntaxdefault">            $res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_login</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_password</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'password'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'role'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        return $user</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_user_by_login</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_user $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT users.id, users.name, users.login, users.password, users.role_id, roles.name as role<br />                  FROM '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">', '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_related_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'<br />                  WHERE users.login = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_login</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'" and users.role_id = roles.id'</span><span class="syntaxkeyword">;<br /><br /><br /></span><span class="syntaxdefault">        $user </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_user</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">//echo $query;<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$r </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_login</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_password</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'password'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'role'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        return $user</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function get_users</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_user $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT users.id, users.name, users.login, users.password, users.role_id, roles.name as role<br />                  FROM '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">', '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_related_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'<br />                  WHERE  users.role_id = roles.id'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        $res </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">        $users </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxdefault">        foreach</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res as $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $model_user </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new model_user</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_login</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'login'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_password</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'password'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'role'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'role_id'</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">            $model_user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_user_name</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]);<br /><br /></span><span class="syntaxdefault">            array_push</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$users</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $model_user</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">        return $users</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">    function save</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">model_user $user</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_id</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            else<br />            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'user'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT id FROM '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_related_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">' WHERE name = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$role</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            $res_role_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res_role_id</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /><br /></span><span class="syntaxdefault">            </span><span class="syntaxcomment">//echo $this->user->get_role_id();<br /><br /></span><span class="syntaxdefault">            $query_update </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'UPDATE '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">' SET login = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_login</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'", password = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_password</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'",<br />                      role_id = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'", name = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'" WHERE id = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">            echo $query_update</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query_update</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        else<br />        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role</span><span class="syntaxkeyword">()</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            else<br />            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $role </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'user'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            $query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'SELECT id from '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_related_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">' WHERE name = "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$role</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">'<br>'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $r </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            $res_role_id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NAMED</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            $user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">set_role_id</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$res_role_id</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">][</span><span class="syntaxstring">'id'</span><span class="syntaxkeyword">]);<br /><br /></span><span class="syntaxdefault">            $insert_query </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'INSERT INTO '</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_table_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">' (login, password, role_id, name)<br />            VALUES ("'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_login</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'", "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_password</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'", "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_role_id</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'", "'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">get_user_name</span><span class="syntaxkeyword">().</span><span class="syntaxstring">'")'</span><span class="syntaxkeyword">;<br /><br /><br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">'<br>'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$insert_query</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">            if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">pdo</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$insert_query</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /><br />}<br /><br />&nbsp;</span><span class="syntaxdefault"></span>
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Изолируй функционал по соответствующим классам. Это ООП :) Каждый класс отвечает за свою узкую задачу.
    Никаких echo в Маппере!
    Не надо классу Пользователь знать имена таблиц!
     
  17. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Ну echo это я себе текст запросов выводил ))

    Таблицы уберу.

    А вот это не понял, сейчас вроде каждый класс за свою задачу и отвечает
     
  18. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Alex_1984, а зачем ты лишний шаг делаешь? Почему чтоб твоим маппером воспользоваться, я должен сначала создать одну модель "пользователь", потом установить её id, потом передать её в твой маппер, потом получить из него другую. В моём варианте я сразу передаю id в маппер, и получаю модель. Не надо лишних шагов. Код должен быть простым по возможности, очень очевидным.
     
  19. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    У меня названия таблиц были в модели, переделал уже.

    А вообще DataMapper я так понял больше подойдет для больших проектов в которых данные могут храниться в разных источниках, получается очень много текста на одну маленькую табличку. У меня все проще было, в одном классе как бы шаблоны

    Код (PHP):
    1. <span class="syntaxdefault">&nbsp;<br /></span><span class="syntaxkeyword">function&nbsp;</span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$pass</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$host</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_name&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_password&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$pass</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_user&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$user</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_host&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$host</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$connection&nbsp;</span><span class="syntaxkeyword">=&nbsp;new&nbsp;</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"mysql:host=</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_host</span><span class="syntaxstring">;dbname=</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_name</span><span class="syntaxstring">"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_user</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db_password</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$connection</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">Select</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$select</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$from</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$leftjoin&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$on&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$orderby&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$groupby&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$query&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">select_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$select</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$from</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$leftjoin</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$on</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$orderby</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$groupby</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$qr&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$r&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$qr</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$r&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$res&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$r</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">fetchAll</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PDO</span><span class="syntaxkeyword">::</span><span class="syntaxdefault">FETCH_NUM</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">Insert</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$insertinto</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$columns</span><span class="syntaxkeyword">,&nbsp;&nbsp;</span><span class="syntaxdefault">$values</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$query&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">insert_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$insertinto</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$columns</span><span class="syntaxkeyword">,&nbsp;&nbsp;</span><span class="syntaxdefault">$values</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$qr&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$qr</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">Update</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$update</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$set</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$query&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">update_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$update</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$set</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$qr&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$qr</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$query</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">Delete</span><span class="syntaxkeyword">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;</span><span class="syntaxdefault">select_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$select</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$from</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$leftjoin&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$on&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$orderby&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$groupby&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'SELECT&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$FROM&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;FROM&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;WHERE&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$LEFTJOIN&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;LEFT&nbsp;JOIN&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$ON&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;ON&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$ORDERBY&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;ORDER&nbsp;BY&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$GROUPBY&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;GROUP&nbsp;BY&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$select&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$sel</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$sel</span><span class="syntaxkeyword">.</span><span class="syntaxstring">',&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$SELECT</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">',&nbsp;'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$from&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$fr</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$FROM</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$fr</span><span class="syntaxkeyword">.</span><span class="syntaxstring">',&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$FROM&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$FROM</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">',&nbsp;'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$key&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$value</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$key&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">$value&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">'&nbsp;and&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'and'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$leftjoin&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$leftjoin&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$lj</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$LEFTJOIN</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$lj</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$on&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$onkey</span><span class="syntaxkeyword">=></span><span class="syntaxdefault">$onvalue</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$ON</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$onkey</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'='</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$onvalue</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$leftjoin&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$FROM</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$LEFTJOIN</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$ON</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT&nbsp;</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$FROM&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">'&nbsp;'&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SELECT</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$FROM</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$SELECT</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;</span><span class="syntaxdefault">insert_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$insertinto</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$columns</span><span class="syntaxkeyword">,&nbsp;&nbsp;</span><span class="syntaxdefault">$values</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$INSERTINTO&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'INSERT&nbsp;INTO&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'VALUES'</span><span class="syntaxkeyword">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$INSERTINTO</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$insertinto</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$COLUMNS&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'('</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$columns&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$col</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$COLUMNS</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$col</span><span class="syntaxkeyword">.</span><span class="syntaxstring">','</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$COLUMNS&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$COLUMNS</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$COLUMNS&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$COLUMNS</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$COLUMNS</span><span class="syntaxkeyword">.=</span><span class="syntaxstring">')&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxstring">'('</span><span class="syntaxkeyword">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$values&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxstring">'"'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'",'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">.=</span><span class="syntaxstring">')'</span><span class="syntaxkeyword">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$INSERTINTO</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$COLUMNS</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$VALUES</span><span class="syntaxkeyword">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$INSERTINTO</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;</span><span class="syntaxdefault">delete_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$delete</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$DELETE_FROM&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'DELETE&nbsp;FROM&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;WHERE&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$DELETE_FROM</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$delete</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">=></span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$val</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$DELETE_FROM</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$DELETE_FROM</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">update_builder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$update</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$set</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'UPDATE&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SET&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;&nbsp;SET&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;WHERE&nbsp;'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$update&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$upd_val</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$upd_val</span><span class="syntaxkeyword">.</span><span class="syntaxstring">','</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$UPDATE</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$UPDATE</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(</span><span class="syntaxdefault">$set&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$set_key&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$set_val</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$set_key</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'='</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$set_val</span><span class="syntaxkeyword">.</span><span class="syntaxstring">','</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SET&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SET&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$SET&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">!=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;(</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">as&nbsp;</span><span class="syntaxdefault">$where_key&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$where_val</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$where_key</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$where_val&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">trim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">rtrim</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">','</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$WHERE&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'&nbsp;'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;</span><span class="syntaxdefault">$UPDATE</span><span class="syntaxkeyword">.=&nbsp;</span><span class="syntaxdefault">$SET</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$WHERE</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;<br />&nbsp;</span><span class="syntaxdefault"></span>
    и модели такого вида

    Код (PHP):
    1. <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">class&nbsp;</span><span class="syntaxdefault">model_navigation<br /></span><span class="syntaxkeyword">{<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;&nbsp;</span><span class="syntaxdefault">$db&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">null</span><span class="syntaxkeyword">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">__construct</span><span class="syntaxkeyword">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db&nbsp;</span><span class="syntaxkeyword">=&nbsp;new&nbsp;</span><span class="syntaxdefault">db</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">DB_NAME</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">DB_PASSWORD</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">DB_USER</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">DB_HOST</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Connect</span><span class="syntaxkeyword">();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">get_navigation</span><span class="syntaxkeyword">()<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$select&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'categories'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'description'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'parent'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$from&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'navigation'</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$res&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">$select</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$select</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$from</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">set_navigation_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$description</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$categories</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$parent</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$insert&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'navigation'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$columns&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'description'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'categories'</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'parent'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$set&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$description</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$categories</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$parent</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$res&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Insert</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$insert</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$columns</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$set</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;</span><span class="syntaxdefault">edit_navigation_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$description</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$categories</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$parent</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$update&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'navigation'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$set&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'name'&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'description'&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$description</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'categories'&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$categories</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">'parent'&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$parent</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$where&nbsp;</span><span class="syntaxkeyword">=&nbsp;array(</span><span class="syntaxstring">'id&nbsp;=&nbsp;'&nbsp;</span><span class="syntaxkeyword">=>&nbsp;</span><span class="syntaxdefault">$id</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$res&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">db</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">Update</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$update</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$set</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">$where</span><span class="syntaxkeyword">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">$res</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;<br />&nbsp;</span><span class="syntaxdefault"></span>
    наверно так не правильно, за то проще ))
     
  20. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Для скриптов вроде Hello World однозначно не подходит. ООП вообще поначалу создает впечатление избыточности, но по мере усложнения проекта профит от разделения задач начинает увеличиваться. Кроме того, можно ведь выделить какие-то универсальные моменты и не писать свой маппер с нуля на каждый класс-сущность.

    Вот например мои эксперименты: viewtopic.php?t=48187
     
  21. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну я честно говоря не пытался реализовать свой ORM (DataMapper или ActiveRecord), поскольку уже столько всего готового разными умными людьми сделано, для задач, с которыми я по работе сталкиваюсь, мне с головой хватает. Причём, я всегда читаю код используемых фреймворков, поэтому имею представление, что там и как происходит. DataMapper мне тоже немного многословным кажется, хотя это больше соответствует принципам SOLID. Недавно мне попалась книга про программирование на фреймворке Yii2 от одного из его создателей, и там совсем забавную штуку он делает в примере приложения, которое разрабатывает по ходу книги. Он, фактически, создаёт DataMapper над ActiveRecord, реализованном в Yii2. Аргументируя тем, что вдруг ему завтра AR станет слишком медленным или из Yii3 его выпилят. А так он только репозиторий перепишет, а классы останутся. Так что своя правда тут есть.

    А если уж хочется самому, то да, надо что-то разрабатывать обобщённое, что из проекта в проект можно будет носить, как artoodetoo сделал.
     
  22. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Посмотрел я его ссылку и понял что от helloWorld недалеко ушел ))
    Учусь пока что. Что то новое для себя увидел, решил посмотреть как это делается. В общем буду дальше разбираться.
     
  23. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Невнимательно посмотрели. Там много чего интересного реализовано. Тот же DataMapper. Да и вообще, целый фреймворк с контроллерами и прочим. В принципе, можно готовое приложение поднимать.
     
  24. Alex_1984

    Alex_1984 Новичок

    С нами с:
    10 дек 2014
    Сообщения:
    133
    Симпатии:
    0
    Я про то и говорю, что мало чего понял ))
    Про helloworld эт я про себя писал
     
  25. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну коли не поняли - проясните. Что такое MVC, что такое DataMapper, доки проработайте, если по языку что не понятно - проясните по языку. Всё равно играетесь большей частью - попробуйте что-нибудь реализовать на этом фреймворке. Это очень полезно код таких программистов, как artoodetoo читать. Мне и самому захотелось, только время найти надо :)))