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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Mysqli::stmt - Подготовленные выражения 
:(
    Опции темы
baldina
Дата 19.11.2012, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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

Код

$query->
  update('table')->
  values (['field1'=>'value1', 'field2'=>'value2'])->
  where(['id'=>eq($x), 'value1'=>less($v1)]);

$affected_rows = $query->exec();

$query->
  select('table1')->
  fields(['table1.field1'=>'field1','table2.field2'=>'field2'])->
  inner_join('table2')->
  on('table1.id'=>eq('table2.t_id')->
  where(['id'=>less($id)]);

$iterator = $query->exec();
foreach ($iterator as $row) {...}


есть например такая библиотека http://www.notorm.com/, поглядите исходники.

Это сообщение отредактировал(а) baldina - 19.11.2012, 16:59
PM MAIL   Вверх
ksnk
Дата 19.11.2012, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(Gold Dragon @  19.11.2012,  16:36 Найти цитируемый пост)
ksnk, не совсем уловил мысль.. На примере покажи

Про что? Про "многоязыковые" словари?

Код

// mysql_vocabular.php
class sql_vocabular {
  public const sql=array(
    'sql_111'=>'select * from xxx;',
    'sql_112'=>'select * from yyy;',
    'sql_113'=>'select * from ?;',
   ...
  )
}




Код

$vocabular= 'mysql_vocabular '


...->select('sql_111',$args,...)

...

function select ($sql){
   $query=sql_vocabular::$sql[$sql];
...
}



Вот, что-то на коленке накропалось ;)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
baldina
Дата 19.11.2012, 18:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



а вообще, мне кажется, нужно начинать с целей: чего хочется достичь. Gold Dragon хотел маленькую библиотеку, удобную для него лично, но результат стал естественным образом разрастаться - по мере понимания проблем и способов решения.

видимо можно было прийти к пониманию несколько иным путем - сформулировав требуемый интерфейс к бд. а для начала - познакомиться с тем, что есть. вот например: http://sql-cross-queries.freexit.eu/

не удивлюсь, если в результате ТС поймет концепцию некоторых ранее виданных библиотек, что-то ему понравится, и он бросит свой велосипед.
хотя велосипеды изобретать полезно: начинаешь понимать как оно работает

PM MAIL   Вверх
Fortop
Дата 19.11.2012, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ksnk, это же самое можно реализовать без словарей

Код

Model->fetchLastTenDayProducts()



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


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


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

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



ksnk, очень сложная система получается, да и не нужная на мой взгляд... Нужно как минимум ещё и "словари" знать smile

Цитата(baldina @  19.11.2012,  17:59 Найти цитируемый пост)
 внутри за счет полиморфизма и пр. все будет выглядеть коротко и ясно, а результат для использования - что-то типа такого:
интересный вариант. Но как ты заметил, мне нужна маленькая и простая библиотека... Хотя действительно интересный подход, ещё не встречал такого... 



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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