. Але якщо count() не повертає один рядок — то є велика вірогідність, що увесь інший sql також працює не так, як ви сподіваєтесь. Як це відслідкувати?
Ну а те, про що ви говорите (перевірки всередині функцій) — це assertи, що допомагають програмісту відловити свої власні помилки. Відповідно їх ви ставите в залежності від своїх потреб.
Все, що прийшло від користувача — має пройти untaint (наприклад, перевірку регекспом). Один раз і в чітко визначеному місці. Це визначає безпеку рушія.
Це значення зазвичай робиться змінним (тобто користувач вашого рушія може це змінити в адмінці). Різні потреби — різні значення. Хтось завантажує лише гіфки по 10k, а хтось — равки по 20М.
А ви впевнені, що юзерів потрібно обмежувати? Можливо тоді взагалі не варто зберігати картинки у себе а використати спеціалізований сервіс?
А ви впевнені, що юзерів потрібно обмежувати?
Або якщо вибираються тільки параметри доступу для подальшого їх аналізу і якщо запит вернув не 1 рядок... (знову не каунт запит)
Якщо Ви такий параноїк,...
... то просто дописуйте: select count(*) from table limit 1.
Але найкраще — підучити принципи роботи рушіїв SQL, допоки не буде впевненості у тому, що може вернути і що не може вернути той чи інший запит. Ваша проблема — банальна технічна безграмотність. Учіться, поки не збагнете, що select count(*) from table не може вернути понад два рядка. До повного просвітлення, як кажуть.
select count(*) from table не може вернути понад два рядка
select count(*) from table ... group by ...
...
Книги? Зараз усе так стрімко змінюється, що ці книги не встигли надрукуватись, як уже треба переписувати. Дивіться навчальні відео, як-не-як уже онлайнових курсів завались скільки зʼявилось. А Ви про книги паперові.