Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Связать MySQL и JS


Автор: December 18.5.2005, 19:26
Greetings All!
Стоит следующая задача: взаимодействовать с СУБД (MySQL, в частности) на сервере, используя только JavaScript и HTML. Либо какими-то стандартными средствами (если таковые имеются), либо каким-нибудь cgi-bin модулем, по принципу "установил и забыл". Если такое осуществимо, то дайте плиз линки где качать/чего читать.
ЗЫ: Ни php, ни perlом заниматься не хочу. Изучение технологии должно занять максимум 2-3 часа.
Всем заранее спасибо за указание верного пути smile

Автор: PARROT 18.5.2005, 20:33
Помоему это невозможно smile
Msql & PHP || Msql & Perl

Выбора нет.

Автор: Aliance 18.5.2005, 21:20
Цитата(December @ 18.5.2005, 20:26)
Ни php, ни perlом заниматься не хочу.

Цитата(December @ 18.5.2005, 20:26)
Изучение технологии должно занять максимум 2-3 часа.

У меня так и заняло... азы php+MySQL...

Цитата(December @ 18.5.2005, 20:26)
взаимодействовать с СУБД (MySQL, в частности) на сервере, используя только JavaScript и HTML

Хороший анекдот smile
Сам подумай:
HTML - это разметка smile Как можно с ее помощью выполнять запросы (не учитывая косвенную роль)?!
JS - клиентский язык - а для связи с сервером нужен серверный!

Автор: Ignat 18.5.2005, 21:53
По теме, но не в тему...


Цитата(Aliance @ 18.5.2005, 22:20)
JS - клиентский язык

ASP-шный JavaScript никто не отменял.

Можно использовать данную связку ASP+Mysql, но хостинг дороже будет, и, ИМХО, сложнее, чем PHP.


Автор: Sardar 18.5.2005, 23:39
Чисто теоретически можно заюзать ODBC коннект к БД, попытаться дёргать запросы, НО я такого еще не видел и тебе потребуеться масса прав. Другими словами это возможно для интранет приложения, но в и-нете такое не прокатит.

Выход(не красивый): пишем простой скриптик на сервере, который будет посылать твои запросы на БД. Запросы формируешь на клиенте, отсылаешь текстом, получаешь назад XML, далее DOM + XPath тебе товарищи. Хороши бы в скриптик на сервере сессии и авторизацию с ограничением прав сделать, иначе совсем левые запросы отовсех получать будет.

Выхо(правильный): пишем нормальную серверную сторону. Клиент опрашивает сервер и ничего не знает о SQL и т.п. В ответ получает XML.

Коммуникации с сервером сейчас модно делать на XMLHTTPRequest.

Автор: December 18.5.2005, 23:45
Цитата(Aliance @ 18.5.2005, 21:20)
Хороший анекдот
Сам подумай:
HTML - это разметка  Как можно с ее помощью выполнять запросы (не учитывая косвенную роль)?!

Очень просто. Передавая кверю в URL'e как параметр.

Цитата(Ignat @ 18.5.2005, 21:53)
ASP-шный JavaScript никто не отменял

Не, хостинг уже есть, на никсах. С АСП разбираться тоже в лом smile

Перефразируем задачу.
Есть ли какой-нибудь способ что-нибудь залить на сервер, типа интерперетатора запросов, чтоб потом к нему обращаться и от него получать ответ? Например, давать запрос с параметром SELECT FROM а в ответ получать страничку с <table>?

Автор: Sardar 19.5.2005, 00:18
December вопрос, это нечто должно слушать всех и каждого или какая то авторизационная система должна быть(что более вероятно)?

Если первое, то за 5 минут на кидаю включая API для клиента на JS.

Автор: December 19.5.2005, 08:46
Sardar
Нет, никакой авторизационной системы - вообще. Есть логин+пасс, их даже шифровать не надо. Всё ОЧЕНЬ просто. Решаемые задачи, например, такие:
1) реализовать счётчик посещений
2) простейший журнал работы (timestamp обращения к странице + какая-то ID информация)
То есть совершенно тривиальные (по крайней мере, ч точки зрения SQL) задачи.
Цитата(Sardar @ 19.5.2005, 00:18)
Если первое, то за 5 минут на кидаю включая API для клиента на JS.

Буду очень благодарен, если нарисуешь это. Хостинг на SuSe. Есть PHP и Perl.

Автор: Alx 19.5.2005, 21:24
December
юзай не mysql, а че-нить попроще. для ИЕ я писал статейку про CSV. ( http://forum.vingrad.ru/index.php?showtopic=34883&hl=excel )

а все-таки лучше выучить хоть чуть-чуть PHP...

Автор: December 19.5.2005, 23:36
Цитата
юзай не mysql, а че-нить попроще.

Куда уж проще!!! Если стоит выбор между MySQL и Postgre, то я выбираю MySQL, потому что с этой базой я знаком довольно близко, а в Постгри меня ничто не привлекает.
ЗЫ Какой, к дьяволу, Excel на Линуксе? smile

Автор: Sardar 20.5.2005, 13:18
М
 
Alx хватит флемить!

Цитата(December @ 19.5.2005, 07:46)
1) реализовать счётчик посещений
2) простейший журнал работы (timestamp обращения к странице + какая-то ID информация)

Это легко реализуеться на PHP, к тому же множество готовых примеров, на http://hotscripts.net найдёшь что угодно хоть на Perl, хоть на PHP.

December тебе вообще любые SQL на сервер посылать или всё таки есть какой то определённый список? Ну не могу я поверить что ты хочешь для всего мира открыть свою БД... smile
Вчера по моему форум лежал, не мог запостить код, вечером выложу. Но нужно ли это еще?

Автор: December 20.5.2005, 15:11
Цитата(Sardar @ 20.5.2005, 13:18)
December тебе вообще любые SQL на сервер посылать или всё таки есть какой то определённый список? Ну не могу я поверить что ты хочешь для всего мира открыть свою БД...

Ну, давай посмотрим на практическом примере smile
Допустим, я хочу реализовать счётчик посещений. Для этого мне нужно иметь права на UPDATE в определённой таблице.
Или для лога посещений мне нужен INSERT.
Само собой, SELECT...
У меня изначально урезанные права - я владею не всем сервером, всего лишь купил хостинг на нём. Я могу создать 10 датабазов. Так что злоумышленник сильно не поживится smile
Единственное, на что, возможно, имеет смысл надстроить авторизацию - это DDL. Но поскольку я не имею даже смутного понятия, как в PHP реализуется авторизация, я не могу предложить никаких вариантов аутентификации...

Цитата(Sardar @ 20.5.2005, 13:18)
Вчера по моему форум лежал, не мог запостить код, вечером выложу. Но нужно ли это еще?

Да! Нужно, и скорее всего, ещё потом потребуется первоначальная помощь в освоении.

Цитата(Sardar @ 20.5.2005, 13:18)
Это легко реализуеться на PHP, к тому же множество готовых примеров, на http://hotscripts.net найдёшь что угодно хоть на Perl, хоть на PHP.

Хочется начать с чего-то очень простого, поскольку задача не приоритетная, и времени на неё выделено - ноль целых фиг десятых smile

Автор: Sardar 4.6.2005, 01:00
December, я увлёкся реализацией JSInteractiveRequest, идея вышедшая из этого топика, хорошо что напомнил smile

И так вопрос: как посылать запросы к SQL серверу из бродилки на JavaScript?
Ответ: никак, но можно посылать запросы на сервер, а тот в свою очередь перенаправит их куда нужно и сформирует ответ.
Замечание: естественно реализовав такое мы делаем огромную дыру в безопасности, сервак будет слушать запросы со всего мира smile Смысл этого кода потестить работу JSInteractiveRequest, а не юзать в реальном проекте(ну только если вы не сумасшедший оптимист, считающий что БД всему миру открыть можно smile )

В прикреплённом архиве весь код. Для того что бы всё работало у вас должен стоять сервер, PHP и MySQL. Открываем server.php меняем логин, пароль и имя БД на ваши.

Из браузера открываем index.htm, пишем любой запрос в текстовое полё, жмём кнопку.
Внимание: любой запрос означет любой который позволяют ваши права, другими словами по неосторожности и базу снести можно smile

Код очень прост, где не ясно коментировал. JSInteractiveRequest описан в разделе Наши скрипты.

December по поводу счётчика и журнала. Счётчик можно сделать простой однопиксельной картинкой, которую будет выдавать скриптом. Скрипт регистрирует обращение к серверу и сохраняет в логах. По сети куча примеров, в буквальном смысле 20 строк.

Журнал уже интересней, опиши подробней. Только это не JS, а скорее серверный скрипт что ты будешь юзать, т.е. другой раздел.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)