function updateTitle($id, $title)
{
$db =& DataBase::getInstance();
$title = $db->realEscapeString($title);
$sql_string = "UPDATE news".
" SET title = '{$title}'".
" WHERE id = '{$id}'";
$db->query($sql_string);
}
Для новичка не однозначно, что работа идёт с БД.Автор оригинала: itprog
а что в коде не читаемо?
Это запрос записи по id или начало построения запроса, который завершается этим$news = $newsMapper->searchById(666);
А вот тут$newsMapper->save($news);
данные эскейпятся?$news->setTitle('new changed title');
И чем не серьёзное?Автор оригинала: itprog
ps: вообще несерьезное твое "проще"![]()
и это ли не супер?Для новичка не однозначно, что работа идёт с БД.
дословно:Это запрос записи по id или начало построения запроса, который завершается этим
угумсданные эскейпятся?
В том то и дело, что как только начинаешь использовать ORM, так сразу приходиться лесть в изучение его реализации. Иначе такого наворотишь...Автор оригинала: zerkms
и это ли не супер?работа с данными скрыта, а тебе собственно - пофигу что и как работает, пользуйся результатами, программируй логику приложения
сомнительное утверждениеВ том то и дело, что как только начинаешь использовать ORM, так сразу приходиться лесть в изучение его реализации
Вы уверены? Подумайте ещё раз хорошенькоАвтор оригинала: itprog
В твоей функции, например, возможна SQL-инъекция через $id..
Программист не тривиальный пользователь.Автор оригинала: zerkms
(как обычно говорят в таких случаях - для того чтобы пользоваться компьютером, нужно ли знать как именно он устроен?)
function updateTitle($id, $title)
{
$db =& DataBase::getInstance();
$title = $db->realEscapeString($title);
$sql_string = "UPDATE news".
" SET title = '{$title}'".
" WHERE id = '{$id}'";
$db->query($sql_string);
}
updateTitle("4' OR TRUE", 'превед медвед');
программист - как раз таки пользователь ОРМаПрограммист не тривиальный пользователь.
ты не понимаешь смысла ОРМа. его цель - упростить РУТИННЫЕ операции с БД. При этом ОРМ также может позволять делать и прямые запросы к БД.А теперь отпишите на нём выборку из трёх связанных таблиц, да ещё не всех полей для каждой таблицы, да ещё с преобразованием значений нескольких из выбираемых полей.
ОРМ это не конкретная имплементация, а парадигма. Каждый автор ОРМ волен именовать методы как хочет, равно как и всё остальное делать так - как удобно.И ещё. Есть ли стандарт для ORM именований?
В том-то и дело, что функция вырвана из контекста - это раз.Автор оригинала: zerkms
PHP:updateTitle("4' OR TRUE", 'превед медвед');
иты не понимаешь смысла ОРМа. его цель - упростить РУТИННЫЕ операции с БД.
Тут играть. Тут не играть. Тут рыба лежала...При этом ОРМ также может позволять делать и прямые запросы к БД.
Ни хрена себе упростили и сделали понятным код! Это мы опять пишем SQL, но через жопу.По поводу 3 связанных таблиц - всё делается автоматом средствами орм, связи описываются в схеме БД (в ini)
и утверждение, что ORM облегчает понимание кода противоречат друг другу.
Так если я как программист не напишу, то что мне нужно, то как это за меня сделает ORM. Или он медиум?по поводу "не всех полей" - тебя это не должно касаться, тебе в результате выполнения приходят объекты с методами, о "полях" ты даже не догадываешься
по поводу преобразования - тоже не проблема (в случае с тем, чем пользуюсь я)
Ага, учим диалекты китайского или живём в одной провинции.ОРМ это не конкретная имплементация, а парадигма. Каждый автор ОРМ волен именовать методы как хочет, равно как и всё остальное делать так - как удобно.
нет, не пишемНи хрена себе упростили и сделали понятным код! Это мы опять пишем SQL, но через жопу.
тут варианта два:Так если я как программист не напишу, то что мне нужно, то как это за меня сделает ORM. Или он медиум?
а если всё таки подумать - кто как не класс, работающий с конкретной предметной областью знает лучше - какие данные валидные, а какие нет. вполне нормальной практикой является перенос валидации именно в ДО, или ты считаешь, что размазывать валидацию по всему коду лучше, чем сосредоточить в одном месте, где собственно ей и полагается быть?Сама же по всей логике приложения она не должна их валидировать.
т.е. ты хочешь сказать что и твой код, напримерАга, учим диалекты китайского или живём в одной провинции.
вообще то в начале я привёл пару названий ОРМ, если тебе это действительно интересно - нагугли офсайты и посмотри там примеры. здесь тема (конечно же холиварная) - вообще об ОРМ, а не о конкретной библиотекеДа и примера не последовало. Видимо не так прост ORM