Как сохранить многомерный массив JavaScript в базе данных MySQL - PullRequest
1 голос
/ 10 июня 2011

У меня есть приложение javascript, которое будет отслеживать координаты x & y нескольких объектов на холсте.Я планирую сохранить эти данные в двухмерном массиве, таком как:

new Array(
    new Array(id0, x0, y0),
    new Array(id1, x1, y1),
    new Array(id2, x2, y2));

Я хочу отправить эти данные в скрипт php и сохранить их в базе данных mysql для последующего поиска / повторного воспроизведения.Какой хороший способ сделать это?Должен ли я сериализовать массив и кодировать его для транспорта?Я использую jQuery, так что если кто-нибудь знает какие-либо хорошие функции, включенные в эту среду, это было бы здорово.Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Сериализуйте ваш массив в сохраняемый формат (обычно строку), отправьте его на сервер, который будет хранить его в БД.

Вы можете использовать JSON, XML или любой другой формат. Я бы выбрал JSON, поскольку он менее многословен, а затем использует меньше места в вашей базе данных.

Однако имейте в виду, что сериализованные массивы предотвращают любые запросы с использованием механизма базы данных. Вам придется извлечь ваши данные, десериализовать их, проверить, нужны ли они вам, и промыть и повторять, пока не найдете правый массив (если вы не знаете идентификатор нужного массива) .

Примечание: не забудьте использовать POST-запрос для отправки его на сервер, так как GET-запрос имеет ограничение по длине.

2 голосов
/ 10 июня 2011

Лучшей идеей кажется JSON .

Просто закодируйте ваш массив в JSON , отправьте его на сервер. Если вам не нужно манипулировать данными на стороне сервера, вы можете даже сохранить сам JSON в MySQL. В противном случае все распространенные серверные языки имеют функции обработки JSON ( json_decode () и друзья в PHP).

На обратном пути (от сервера к Javascript) JSON снова является самым простым способом. Вы можете использовать функции jQuery getJSON() или parseJSON() для обработки и получить свой массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...