@Avery007 вы вставляете значения напрямую в запрос.
Если бы в полученной _одной слитной_ строке было возможно отделить данные от управляющих команд - такого понятия как SQL-инъекция бы не существовало, сам сервер СУБД бы и разбирал что где. Но это невозможно. Значит, у вас дыра открыта.
Проверяется же элементарно.
@Avery007 , вы подставляете в SQL запрос строковые значения.
Во-первых, так делать нельзя. Используйте prepared statements.
Во-вторых, вы их подставляете без какого-либо экранирования. Значит экранированием должен заниматься код, который вызывает этот метод (клиентским обычно называется, т.к. пользователь этого класса), что неверно, или экранирования не происходит вовсе. Привет уязвимости.
> А что происходит после 70 лет после смерти автора?
Никто не знает, этот срок никогда не наступал. При подходе к дате X внезапно оказываются убедительные аргументы продлить срок до X+N.
В теории должен был быть переход в общественное достояние. А информация в общественном достоянии не имеет ограничений на использование.
Проверяйте каждую книгу и автора - и от даты публикации и от даты смерти автора (и соавторов!) должно пройти хотя бы 70 лет. Есть ещё другие пункты, описанные где-то в гражданском кодексе (начинайте от статьи 192 ГК РФ).
> подключить HDD к малине без блока питания от компьютера?
А зачем вам блок питания от компьютера?
И вы всё-таки скажете, какого габарита диск? Хоть линейкой измерьте, и то понятно будет, что отвечать.
Что есть террабайтный диск?
Эта характеристика никак не характеризует физику накопителя. 10 лет назад это было несколько дисков в массиве, в 2007 - это стал 1 3.5" диск, в 2009 - это уже 2,5" (ёпт, как время летит, я-то думал, это было года 2 назад), в 2011 - это одна 3,5" пластина (у 2,5, вроде бы 2 пластины сейчас для получения 1тб ёмкости).
А меньше пластин - меньше энергопотребление в том же формфакторе. Меньше формфактор - меньше энергопотребление.
USB выдает 5в. Вольт. По стандарту для USB2.0 - 0,5А. Т.е. 2,5 Ватта мощности. USB3.0 - 0,9А. Потому переносные диски нередко имеют сдвоенный коннектор питания, слопать хотя бы 1А, но уже с пары портов.
@sps1735 ,
1) так почему оба AI? AI гарантированно уникален, а не гарантированно предсказуем. В других таблицах ai может тикать с другой скоростью и в другом порядке обработки запросов. Банальное:
скрипт 1 создал пост, задумался о чём-то
скрипт 2 создал пост, создал запись просмотров. И получил не тот id.
Занесли в одну таблицу - вот у вас есть теперь уже гарантированно выделенный для этой сущности id. Его и пишите в связанные таблицы.
PS: пишите обращение, на комментарии к ответам оповещение не приходит.
> только можно и NOW() - INTERVAL 1 DAY заменить на нужную дату и время в программе
Не "можно", а необходимо. NOW() в принципе не попадёт в query cache никогда. Что ещё никогда не попадёт в кэш, описано в мануале: dev.mysql.com/doc/refman/5.1/en/query-cache-operat...
> Ведь в сочетании со 100 Mbit LAN разница будет ощутима в случае USB и в случае SATA .
? Реальная пропускная способность USB почти в 3 раза перекрывает теоретические возможности 100мбит/с сети. Из USB2.0 можно выжать 30-35 мегабайт в секунду, тогда как 100мбит/с только 12,5мб/с
Обратите внимание на системную переменную group_concat_max_len, результат group_concat будет обрезан до этого значения, если вдруг окажется больше. По-умолчанию всего 1кб, т.е. вы запросто рискуете не уместиться.
Работает. Но согласно документации, не гарантируется для всех драйверов.
./ext/pdo/pdo_stmt.c более лаконичен:
Returns the number of rows in a result set, or the number of rows affected by the last execute(). It is not always meaningful.
@AMar4enko , прощу прощения, среагировал на "где в строке теги через разделитель какой-нибудь." и не заметил с утра, что эта денормализация только для вывода подразумевается. Не будете же спорить, что находятся умники, именно в одном поле через запятую и хранить данные, а потом по like '%,n,%' искать?
А теперь выберите мне, пожалуйста, все записи с определённым тегом. Что, fullscan получился? Конечно, fullscan.
А в нормальной форме - тупой поиск по индексу.
10 лямов чисел - пустяк. Любая даже дохлая виртуалка справится.
Под виндами - только 32-битные. Т.к. объявлены как long int. ( PHP_INT_MAX в windows_x64 php_x64 5.5 )
Под никсами - 64 бита вполне себе радостно существуют.
> мне нужно отслеживать, есть ли какие либо ошибки в проекте
То силами PHP-кода в этом же самом проекте это отслеживать довольно глупо. Анализируйте логи веб-сервера, мониторьте все 500 ответы и error-лог.
А то вот такое вот, например, никак не выловите, т.к. segfault:
<code lang="php">class A
{
function __destruct()
{
return new A;
}
}
$r=new A;</code>
Если бы в полученной _одной слитной_ строке было возможно отделить данные от управляющих команд - такого понятия как SQL-инъекция бы не существовало, сам сервер СУБД бы и разбирал что где. Но это невозможно. Значит, у вас дыра открыта.
Проверяется же элементарно.