21

Re: Робота з базою: mysql_num_rows() expects parameter 1 to be resource

221VOLT написав:
iovchynnikov написав:

Я хотів ще зауважити в "плюсах" (суб'єктивних) що PDO повністю OO але фактично це не є ані плюсом, ані мінусом (об'єктивно). В час коли більшість фреймворків PHP OO, не зовсім кошерно пхати туди процедуральний код (PS: mysqli теж має OO стиль, якщо що).

Приклад був у посиланні:

$params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);
     
$pdo->prepare('
    SELECT * FROM users
    WHERE username = :username
    AND email = :email
    AND last_login > :last_login');
     
$pdo->execute($params);

Окрім того що воно виглядає краще і має набагато більше контексту ніж "?", не треба слідкувати за порядком параметрів як у випадку з "?", легше створювати такі запити динамічно.

Плюс у кросплатформенності PDO не у тому, що не треба шукати і обирати драйвер, а у тому що у випадку міграції з того ж mysql на postgresql або msssql, не треба буде змінювати код.

особисто мені і до ерланга ооп в php(в js частково простіше) зовсім "не заходив", а опісля ерланга -- взагалі...
(тобто для мене це ускладнення - жирний мінус)

дякую за приклад :)
imho зайва змінна/зайвий array зовсім не додає зручності
(яка різниця -- "?" там чи змінна? все-одно за порядком потрібно дивитись -- якщо не зверху то знизу)) )

Прихований текст

більшість -- ооп? окай) а відколи це більшість -- краща частина?))
якщо дивитись по людях --
багатих - меншість, розумних - меншість, добрих - меншість,,
із взуттям -- також так, як і з багато чим (якщо не з усім)

більшість - не аргумент, а кошерним є те, що корисніше з усіх боків

якщо всі функції роботи з базою є в окремому файлі -- немає жодної проблеми з автозаміною -- один раз Ctrl+C , Ctrl+V і все чудово

втім, pdo все-одно не містить у собі "всі-всі драйвери, які можуть пригодитись",
власне і сама ідея такого драйвера - безглузда, відповідно це також є сумнівною перевагою pdo

Давайте не перекручувати слова. Ніхто не казав що більше оо - краще. Я досить ясно виділив в своєму повідомленні, що то є моя особиста, суб'єктивна думка, щоб не зачепити Ваші "почуття" (які, як я бачу, базуються лише на тому, що "не зайшло", а не, наприклад, "я 5 років працював на продакшені з ооп і визначив що для мої вимог оо переважно є оверкіл").

Приклад. Знову суб'єктивно. Якщо Ви вважаєте, що 3 рівневий SQL запит з джоїнами та 5ма змінити буде легше читати з ?, то Ваш вибір. Моя задача показати приклад і дати вибір топік-стартеру, який я бачу лише відкриває для себе PHP. Най він для себе обере що йому подобається.

Краща частина відтоді, як топ 3 фреймворків (лаварел, сімфоні та кодінж) - ОО. Без особистої думки, статистично.

Безглузда відповідно до чого? До Вашого безглуздого твердження? Мета PDO - дати інтерфейс, абстракцію над драйверами, а не "містити всі драйвера".

Подякували: 221VOLT, ostap34PHP2

22 Востаннє редагувалося 221VOLT (05.02.2017 13:55:15)

Re: Робота з базою: mysql_num_rows() expects parameter 1 to be resource

а смисл з абстракції, якщо в ній є зайвий непотріб і немає потрібно?
краще використовувати строго те що є необхідним

субєктивно -- джоіни є непотрібними і шкідливими (а можливо навіть і обєктивно -- чомусь в хайлоаді стараються позбутися цього лайна щастячка)
архітектуру проекту потрібно будувати так, щоб все чудово могло працювати без джоінів

невелика денормалізація-дубляж даних - хороша ціна за відсутність джоінів,
оскільки база даних і так є вузьким місцем -- то немає смислу змішувати вибірку даних і їх вивід-представлення -- представлення повинен робити код!
(графові субд мацали? там все-все посуті -- великі індекси по денормалізованих даних -- база з 300метрів переростає в декілька гігабайт)

!!!

недавно в чаті була бесіда на тему як краще зробити деяку вибірку
умови такі --
таблиця
id | дата (день) | значення (число)
кожен день в таблицю пишуться поточні значення для кожного айді (користувача), тобто айдішки постійно повторюються
задача: написать запит, котрий виведе топ30 користувачів по значенню з історією за попередні 5 днів

тобто очікується результат:
id | 31.01 | 30.01 | 29.01 | 28.01 | 27.01
5  | 10       | 20      | 15       | 12      |    12
7  | 9         | 20      | 15       | 12      |    12
...

хлопець вирішував цю задачу з допомогою 5!! джоінів
я вирішив за один запит з одним підзапитом (по суті з одним джоіном, щоб його позбутися -- повинна бути інша структура таблиці(таблиць) )

а тепер давайте ваші анекдоти про джоіни  :D
доречі продовжуючи цю нездорову тему з форматуванням виводу з допомогою субд -- в субд можна ще процедуру-обгортку написати і там же дописати html, щоб з субд одразу html падав  :D ми любимо збочення!! *CRAZY*

Подякували: ostap34PHP1