INSERT ... ON DUPLICATE KEY UPDATE differs from a simple INSERT in that an exclusive lock rather than a shared lock is placed on the row to be updated when a duplicate-key error occurs. An exclusive index-record lock is taken for a duplicate primary key value. An exclusive next-key lock is taken for a duplicate unique key value.
romaaa32, ну вот внезапно и стоит спрашивать не про Laravel - он просто ваш upsert превращает в insert on duplicate keys update и после этого машет вам ручкой.
maryaTurova, если вы используете prepared statement то этого достаточно от sql injection. Ибо сама схема работы подготовленных выражений заключается в том что запрос и данные для него идут отдельно друг от друга. и пошутить на тему моего сына зовут "Tommy'; DROP TABLE students;" уже не получится
Ну вы понимаете что вы $rulesCategoryOne получили ассоциативный массив, потом по нему идете в цикле foreach и в результате у вас в $rule лежат значения столбцов из строки в дб?
Дмитрий Сериков, ну он вам вывел только часть ответа. вам стоит посмотреть полностью. но в данный момент если вы удалили все записи - смысла это продолжать нет.
Дмитрий Сериков, это здорово что вы привели мне код этого класса. Однако из него не понятно в какую таблицу лезет этот класс, потому что насколько я могу судить код сохранения хранится в save_action родительского класса. Мне кажется стоит вам посмотреть и найти название таблицы - и потом сделать у нее show create table
Дмитрий Сериков, до тех пор пока вместо того что бы понять что происходит вы будете делать что нибудь рандомное в надежде что это как нибудь поможет - будет такая хрень.
Вы узнали что и в какую таблицу это класс сохраняет?
Наверное стоит посмотреть что собирается сохранить этот класс, в какую таблицу он собирается это делать, после чего посмотреть что творится в этой таблице, и как минимум show create table имя_таблицы привести
https://dev.mysql.com/doc/refman/5.7/en/innodb-loc...