Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю
 |
|

14.04.2021, 13:54
|
|
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами:
4584912
Репутация:
83
|
|
Сообщение от Pakulichev
Убиваем MySQL без регистрации и СМС с помощью кода, опубликованного выше. Всё, что вам понадобится - пара тройка запросов к скрипту и вот ваша база данных уже забита абсолютно бессмысленными операциями - добро пожаловать в мир сетевых пробок. Да и вообще, PDO для двух запросов, серьезно?
зачем юзать mysqli когда есть PDO?
|
|
|

14.04.2021, 14:13
|
|
Познавший АНТИЧАТ
Регистрация: 28.10.2017
Сообщений: 1,778
С нами:
4495573
Репутация:
183
|
|
Сообщение от Livarka
зачем юзать mysqli когда есть PDO?
Поддержка MySQLi начала осуществляться раньше, соответственно большее количество версий PHP поддерживает это расширение. Более того, MySQLi работает быстрее, чем PDO - как минимум по той причине, что он не такой массивный, как PDO. Подготовленные стейтменты в этом случае не играют большой роли, потому что скрипт не получает каких-либо данных из вне, а соответственно SQL-инъекции добиться невозможно. Так зачем подключать огромный PDO, если можно воспользоваться MySQLi, ускорив работу скрипта и сократив количество кода, да и к тому же упростив его для новичков в программировании?
|
|
|

14.04.2021, 15:43
|
|
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами:
4584912
Репутация:
83
|
|
Сообщение от Pakulichev
Поддержка MySQLi начала осуществляться раньше, соответственно большее количество версий PHP поддерживает это расширение. Более того, MySQLi работает быстрее, чем PDO - как минимум по той причине, что он не такой массивный, как PDO. Подготовленные стейтменты в этом случае не играют большой роли, потому что скрипт не получает каких-либо данных из вне, а соответственно SQL-инъекции добиться невозможно. Так зачем подключать огромный PDO, если можно воспользоваться MySQLi, ускорив работу скрипта и сократив количество кода, да и к тому же упростив его для новичков в программировании?
Я считаю, что если он пытается разрабатывать какую-то систему лучше использовать ПДО ибо ты не выстрелишь себе в ногу.
Ок юзает он mysqli и дойдет до того, что надо массив в запрос засунуть
bind_param не принимает массивы при выполнении запроса,
Именные плейсхолдеры и прочий синтаксический сахар для новичка самое то,
Вставка объектов напрямую в базу данных более удобно чем разбивать данные на переменные.
Твои слова про "убийство базы данных" ничем не доказаны.
Максимум плюс твоего кода это подключение в 1 строку к базе данных.
Мой же метод достаточно просто написать и забыть о коннекте раз и навсегда
Да и прочитав твой код я не думаю, что он разберется что есть что.
Интересно, где ты в запросе DELETE увидел какую-то проблему с производительностью? Он Enterprise проект писать собрался с таким вопросом?
После выполнения скрипта у PDO запрос автоматически закрывается.
Зачем твой высер с циклом DELETE если это можно делать в 1 строку?
Сначала вытащить ID у которых дата окончания а потом в цикле по удалять строки где есть этот ID ты в своем уме чел? Ты ему полную ***ню посоветовал.
С таким подходом тебе только вордпресс ковырять
Не умеешь делать - не советуй
|
|
|

14.04.2021, 18:01
|
|
Познавший АНТИЧАТ
Регистрация: 28.10.2017
Сообщений: 1,778
С нами:
4495573
Репутация:
183
|
|
Сообщение от Livarka
Я считаю, что если он пытается разрабатывать какую-то систему лучше использовать ПДО ибо ты не выстрелишь себе в ногу.
Ок юзает он mysqli и дойдет до того, что надо массив в запрос засунуть
bind_param не принимает массивы при выполнении запроса,
Именные плейсхолдеры и прочий синтаксический сахар для новичка самое то,
Вставка объектов напрямую в базу данных более удобно чем разбивать данные на переменные.
Твои слова про "убийство базы данных" ничем не доказаны.
Максимум плюс твоего кода это подключение в 1 строку к базе данных.
Мой же метод достаточно просто написать и забыть о коннекте раз и навсегда
Да и прочитав твой код я не думаю, что он разберется что есть что.
Интересно, где ты в запросе DELETE увидел какую-то проблему с производительностью? Он Enterprise проект писать собрался с таким вопросом?
После выполнения скрипта у PDO запрос автоматически закрывается.
Зачем твой высер с циклом DELETE если это можно делать в 1 строку?
Сначала вытащить ID у которых дата окончания а потом в цикле по удалять строки где есть этот ID ты в своем уме чел? Ты ему полную ***ню посоветовал.
С таким подходом тебе только вордпресс ковырять
Не умеешь делать - не советуй
Во-первых, ты сам говоришь, что он пишет простейший проект, тогда о каких массивах, именных плейсхолдерах и прочих ненужных функциях вообще может идти речь? Во-вторых, да, моё решение с удалением было написано поспешно и это действительно ужасное решение, твой вариант SQL-запроса в этом плане лучше, но это не отменяет того, что MySQLi работает с запросами быстрее, нежели PDO, особенно в случае с подготовленными стейтментами. В остальном я не вижу абсолютно никакой проблемы - не нужно меня никуда отправлять, что за агрессия?
Если редактировать мой код под твой SQL-запрос, то он станет ещё в два раза короче. Всё стало только лучше.
|
|
|

14.04.2021, 18:48
|
|
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами:
4584912
Репутация:
83
|
|
Сообщение от Pakulichev
Во-первых, ты сам говоришь, что он пишет простейший проект, тогда о каких массивах, именных плейсхолдерах и прочих ненужных функциях вообще может идти речь? Во-вторых, да, моё решение с удалением было написано поспешно и это действительно ужасное решение, твой вариант SQL-запроса в этом плане лучше, но это не отменяет того, что MySQLi работает с запросами быстрее, нежели PDO, особенно в случае с подготовленными стейтментами. В остальном я не вижу абсолютно никакой проблемы - не нужно меня никуда отправлять, что за агрессия?
Если редактировать мой код под твой SQL-запрос, то он станет ещё в два раза короче. Всё стало только лучше.
Наверное плейсхолдеры чтобы человек понимал как правильно делать в будущем?
Как драйвер для работы влияет на саму работу SQL запроса?
ты на языке передаешь подготовленные данные для выполнения и уже сама база данных выполняет работу.
Если mysqli быстрее на 0,00001 сек то есть ли смысл использовать его? Большинство PHP программистов рекомендуют PDO, он проще и понятнее.
Да, коннект я предоставил не сильно легкий для новичка, но это всяко лучше чем делать 2 запроса *** пойми для чего селект вообще всрался там.
Зачем выгребать id и потом удалять если можно просто удалить ? Ответь на вопрос
|
|
|

14.04.2021, 19:00
|
|
Познавший АНТИЧАТ
Регистрация: 28.10.2017
Сообщений: 1,778
С нами:
4495573
Репутация:
183
|
|
Сообщение от Livarka
Да, коннект я предоставил не сильно легкий для новичка, но это всяко лучше чем делать 2 запроса *** пойми для чего селект вообще всрался там.
Зачем выгребать id и потом удалять если можно просто удалить ? Ответь на вопрос
Я же тебе сказал, что это не лучшее решение - я уже отредактировал свой код. Просто когда я делал привязку себе, я логировал все удаленные записи, для этого мне нужно было получать список тех записей, которые будут удалены - это практично, когда есть необходимость дальнейшего взаимодействия с клиентом. Здесь же SELECT действительно не нужен.
Сообщение от Livarka
Большинство PHP программистов рекомендуют PDO, он проще и понятнее.
Ни разу такого не слышал, хоть и пишу на PHP с 2016 года. Все знакомые мне разработчики не рекомендуют использовать PDO в небольших проектах, ведь всё можно реализовать куда проще через MySQLi, в котором, кстати, есть вариант применения FP вместо OOP, что часто нравится начинающим разработчикам. Большие проекты - да, там PDO может быть полезен, но лично мне привычнее использовать MySQLi и работать по тем стандартам, к которым я уже привык. Тем более, на производительности это никак не отражается, а в некоторых случаях даже повышает её.
К тому же, сильного доверия к PDO у меня нет: один мой знакомый разработчик однажды напоролся на ситуацию, когда в определенный момент PHP скрипт, работающий на основе PDO, не смог подключиться к базе данных по какой-то причине, в следствие чего выдал ошибку, в которой раскрыл аутентификационные данные от базы данных. MySQLi таким точно не занимается, в этом уж я уверен. Кто знает какое ещё чудо PDO подкинет мне завтра.
|
|
|

14.04.2021, 19:16
|
|
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами:
4584912
Репутация:
83
|
|
Сообщение от Pakulichev
Я же тебе сказал, что это не лучшее решение - я уже отредактировал свой код. Просто когда я делал привязку себе, я логировал все удаленные записи, для этого мне нужно было получать список тех записей, которые будут удалены - это практично, когда есть необходимость дальнейшего взаимодействия с клиентом. Здесь же SELECT действительно не нужен.
Ни разу такого не слышал, хоть и пишу на PHP с 2016 года. Все знакомые мне разработчики не рекомендуют использовать PDO в небольших проектах, ведь всё можно реализовать куда проще через MySQLi, в котором, кстати, есть вариант применения FP вместо OOP, что часто нравится начинающим разработчикам. Большие проекты - да, там PDO может быть полезен, но лично мне привычнее использовать MySQLi и работать по тем стандартам, к которым я уже привык. Тем более, на производительности это никак не отражается, а в некоторых случаях даже повышает её.
К тому же, сильного доверия к PDO у меня нет: один мой знакомый разработчик однажды напоролся на ситуацию, когда в определенный момент PHP скрипт, работающий на основе PDO, не смог подключиться к базе данных по какой-то причине, в следствие чего выдал ошибку, в которой раскрыл аутентификационные данные от базы данных. MySQLi таким точно не занимается, в этом уж я уверен. Кто знает какое ещё чудо PDO подкинет мне завтра.
Один мой знакомый доил корову и это оказался бык, не знаю какое чудо подкинет природа завтра.
Если ты не знал, то драйвер собирает тело запроса и запрос выполняет БАЗА ДАННЫХ, а не пхп скрипт. Но если у тебя пхп скрипт выполняет запрос - соболезную.
По твоему решению этой проблемы не заметно, что занимаешься пхп с 2016 года.
Процедурный стиль это начерта не плюс mysqi а скорее его болячка. Кто будет использовать процедурный стиль в большом проекте как ты сказал ?
в пдо все переменный автоматически экранируются, именуемые параметры для работы с большими запросами и куча других фич.
|
|
|

14.04.2021, 20:44
|
|
Познавший АНТИЧАТ
Регистрация: 28.10.2017
Сообщений: 1,778
С нами:
4495573
Репутация:
183
|
|
1) Хорошо, будем игнорировать тот факт, что расширение может в любой неподходящий момент показать пользователю всю необходимую для авторизации в твоей базе информацию. Думаю, хорошее начало дня у кого-то будет, если такое случится. Да, можно выключить отображение ошибок в браузере, но с каких пор это решает проблему, которая выражена в этой уязвимости?
2) Отлично, докопался до формулировки – поздравляю, ты гений. В следующий раз поведаешь мне, что запросы обрабатывает веб-сервер, а не скрипт?
3) Про решение я тебе уже третий раз пишу, не вижу смысла повторяться ещё раз.
4) У каждого свои предпочтения, это во-первых, проект маленький, а не большой, это во-вторых - я не говорил, что это большой проект.
Не вижу смысла в продолжении этой дискуссии, по кой она пошла по кругу. Ни одного аргумента, кроме того, что решение было плохое (так и есть), я не увидел. Всё остальное - пустые слова, не имеющие под собой никакого основания. Особенно второй пункт - это уже верх идиотизма.
|
|
|

15.04.2021, 02:25
|
|
Участник форума
Регистрация: 28.06.2020
Сообщений: 103
С нами:
3094002
Репутация:
48
|
|
Сообщение от Livarka
Можно было чуть логически подумать и сделать самому за это время
создание таблицы:
Код:
CREATE
TABLE
`
mpei
`
.
`
keys
`
(
`
id
`
INT
NOT
NULL
,
`
pName
`
VARCHAR
(
32
)
NOT
NULL
,
`
pKey
`
VARCHAR
(
32
)
NOT
NULL
,
`
pDateEnd
`
TIMESTAMP
NOT
NULL
)
ENGINE
=
InnoDB
;
[/CODE]
А чего без индексов? На id надо бы повесить первичный ключ, на pDateEnd обычный, так мускул будет воркать быстрее, но будет занимать немного больше места
|
|
|

15.04.2021, 14:40
|
|
Участник форума
Регистрация: 27.08.2017
Сообщений: 143
С нами:
4584912
Репутация:
83
|
|
Сообщение от SCHWEITZER
А чего без индексов? На id надо бы повесить первичный ключ, на pDateEnd обычный, так мускул будет воркать быстрее, но будет занимать немного больше места
можн и с индексами, думаю ему пока и так хватит
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|