Подскажите как записать массив в базу мусол.
Подскажите как записать массив в базу мусол. Одной строчкой. Спс.
|
А что за база такая "мусол"?
|
mysql
|
Оригинальная транскрипция. :)
Если записать массив как строку в одно поле базы, то естественно его нужно преобразовать в строку, либо сериализованную, либо json. Но прежде чем такое делать надо сильно задуматься нужно ли это делать. Если этот массив лежит себе в базе как строка, в нем не нужно делать поиска, выборки, изменений, то хрен с ним, пусть строка. В противном случае, вы сами себе геморрой определите. |
Запись ведется в такую таблицу:
id x y 1 22 45 2 13 11 При этом нужно все значения перезаписывать, то есть сперва получаем массив с этой таблицы(с этим нет проблем), после меняем значения массива(тож без проблем), ну а после нужно писать этот массив в таблицу базы. |
Значит вопрос был задан некорректно. Нет в MySQL массивов, полученные из него данные да, будут представлять массив, хотя можно получить их и в виде объекта.
Я так понимаю, что планировалось задать вопрос: - Как одним запросом обновить данные нескольких записей SQL таблицы? Ответ: - Строго говоря для UPDATE не существует многострочной записи в том виде, в каком это возможно в INSERT. Но можно сделать многострочную вставку данных с использованием ON DUPLICATE KEY UPDATE. А стандартным способом только в цикле, делая запрос на обновление данных для каждой записи. PS. Данный форум в основном рассматривает вопросы клиентского программирования. Есть здесь раздел посвященный серверным технологиям, и с такими вопросами нужно в нем обращаться, но так как базы данных, это вопрос серьезный, то еще лучше с подобным обращаться на форумы специализирующиеся по такой тематике, так как коротко об этом не рассказать, а нюансов много. |
wadim, Вы ошиблись разделом.
Изменять данные в таблице можно с помощью конструкции UPDATE. Вот пример процедуры, которая меняет данные. CREATE DEFINER = 'root'@'localhost' PROCEDURE myDataBase.myProcedure(IN id INT, IN x INT, IN y INT) BEGIN UPDATE myTable t SET `x` = x, `y` = y WHERE t.id = id; END Запуск: call myDataBase.myProcedure(2, 10, 20); |
Часовой пояс GMT +3, время: 09:59. |