генерация запросов к МУСКУЛу на основе таблицы

Лысый

Новичок
генерация запросов к МУСКУЛу на основе таблицы

здравствуйте!
поискал по форуму, не нашёл (может не по тем словам искал?)
вопрос
есть таблица в МУСКУле
хочется сгенерировать текст стандартных запросов типа Инесерт в таблицу, селект по ключу. апдейт и тд

(когда прогал под МС СКЛ Сервер, была таккая процедура - даёшь ей имя таблицы, а она генерирует такой набор)

наверника кто нибудь уже написал скриптик который подобное дело реализует?

спасибо.
 

ForJest

- свежая кровь
[m]mysql_list_fields[/m]
или
SHOW FIELDS FROM <имя таблицы>
ищи adodb или pear.php.net/DB
 

Лысый

Новичок
ага
вот бы найти обработчик, который на основе выхода из mysql_list_fields делал код запросов....

как я понимаю adodb или pear.php.net/DB это уровен абстакции над БД
а мне бы хотелось единоразово получать
код типа
class ...
{
var ...
var ...
}
function insert(..., ..., ...)
{
$q= "insert into ... ... ...";
}
}
из которого я бы уже дедал классы для конкретного уровня абстракции над конкретной таблицы
 

Лысый

Новичок
с ORM особо не знаком
почитал в Яндексе - вроде оно

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

Лысый

Новичок
познакомился с общим описанием идеи ORM
но где подобная утилита для ПХП и МУСКУЛА?

а по ссылке ForJest'a я нашёл универсальный уровень абстакции - это не то, что мне надо

или я не так понял?
 

Panchous

Павел
познакомился с общим описанием идеи ORM
но где подобная утилита для ПХП и МУСКУЛА?
есть статья в одном из номеров phpInside + поиск по форуму + поиск по гуглу
я пользовал Propel - очень понравилось (PHP5 only)
а по ссылке ForJest'a я нашёл универсальный уровень абстакции - это не то, что мне надо
а ты определись, что тебе надо...
 

Лысый

Новичок
нашёл
http://mag.phpclub.net/jun2004/phpi4_2004.pdf
оно?

а есть что нить не для 5го ПХП?

именно ORM мне и нужен

какие ещё утилиты такого типа есть?
 

Лысый

Новичок
что ж ты злой такой? ;) в гугл я и без тебя могу
форум для того и есть, чтоб если кто то уже инфу копал и проблему решал - поделиться и сэкономить другим время и силы....

а не по делу лучше уж вообще не пиши
 

Фанат

oncle terrible
Команда форума
операция, на пой взгляд, достаточно бессмысленная.
апдейт делается часто не по всей таблице
инсерт может тоже не всё вставлять.
селект - это вообще фантастика.
тебе нужна специальная программка, чтобы написать
select * from table where key=%s
?
а сортировки, группировки, лимиты, джойны она тебе тоже генерит?

ну сгенеришь ты свой запрос.
а данные откуда брать в него будешь?
 

Лысый

Новичок
согласен что для качественных и сложный задач это вообще не катит

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

Фанат

oncle terrible
Команда форума
если все классы однообразные, то какой смысл их "нагенерить" если можно сделать один, но нормальный?

вообзще, за время, которое ты тут сидишь, давно бы уже написал эту кривизну сам.
 

Лысый

Новичок
погоди
или я плохо объяснил, но в моём случае все классы априори разнве так как разные таблицы
то есть для каждого из них набор элементов будет разным и запросы в методах разные
различаются они конечно всего лишь количеством и набором полей таблиц, но в том то и задача, чтоб это муть не писать ручками..

или мы всё таки о разных вещах говорим?
 

Фанат

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

dima.exe

Новичок
Автор оригинала: Лысый
например?

объясни, если не сложно
Псевдокод
PHP:
class Table
{
  /*
  здесь у нас находятся имена полей         таблицы
  */
  $columns = array(); 

  /*
  здесь у наc ассоциативный массив
  ("column0" => "value0",
   "column1" =>  "value1"....)
  */   
  $values = array();

  function __construct($table_name)
  {
   здесь получаем названия полей
   таблицы и заполняем массив
   $this->columns
  }

  function setValue($column_name, $value_name)
  {
  здесь заполняем массив
  $this->values соответствующими значениями
  }
......
}
Идея надеюсь понятна?
 

Лысый

Новичок
угу
вот только не ясно где особая экономия.. да этот код постоянно используется
но !
параметры в подобные функции я буду вбивать опять таки вручную... опять таки могу запутаться с типами данных и тд
и опять таки это долго

то есть исходная задача не решена
 
Сверху