2013-05-10 4 views
-2

Как подключиться к базе данных mysql от функции JS?Как подключиться к базе данных в JavaScript

Я нашел этот вопрос:

How to connect to SQL server database from javascript?

но это не работает в Chrome, потому что они используют ActiveXObject.

Спасибо.

+4

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

+2

Я бы избегал этого и предпочитал делать каждое соединение с БД на стороне сервера (например, PHP) и получать данные через AJAX. Почему вы хотите сделать это прямо в JavaScript? –

+0

, конечно, я знаю о подключении к параметру через php-скрипт, но у меня проблема с перекрестным доменом, поэтому мне просто нужно сделать простой выбор из db – Patrik18

ответ

1

Вы должны использовать AJAX, поскольку сам JavaScript не может подключиться к серверу. Вы можете вызвать некоторый скрипт PHP с помощью AJAX и в ответе на обработку JavaScript. См. jQuery.ajax().

1

сделать Ajax вызова из JavaScript в PHP, который соединяет вас с базой данных

1

Без какой-то плагин, или посылая запросы на приложения на стороне сервера, который будет иметь доступ к базе данных для вас, вы не можете. Поэтому сосредоточьтесь на тех, а не на серверах.

4

На веб-браузере нет хорошего решения, которое позволит вам работать со всеми браузерами. Есть много недостатков для работы с базой данных на сайте браузера.

Прежде всего, вы показываете структуру своей базы данных, и это очень опасно. Представьте себе, насколько проще сделать SQL-инъекцию, когда вы знаете таблицы и поля?

Необходимо установить соединение с помощью пароля, который будет отображаться третьим лицам. Или вам нужно установить соединение без пароля, что также опасно.

Когда вы устанавливаете соединение с базой данных, кто-то может легко выполнить собственный запрос, что тривиально, потому что вы показываете свою структуру.

Я настоятельно рекомендовал вам не делать это на стороне браузера.

+0

Прошу, я понимаю, но у меня есть проблема с перекрестным доменом, я опубликовал около: ' http: // stackoverflow.com/ questions/16403729/cross-domain-wamp-node-js' , поэтому мне просто нужно сделать несколько простых действий. – Patrik18

1

комментарий под этим вопросом

How to make a database connection

предполагает, что это возможно только с определенным сочетанием технологий Microsoft, специально предназначенных для развертывания настольного, как программное обеспечения с помощью веб-браузера. Биты упомянутые есть:

  • HTA - HTML-приложения
  • JScript - это аромат Microsoft из JavaScript
  • ActiveX объекты

Ссылка также предоставляется: Introduction to HTML Applications (HTAs)

2

но у меня проблема кросс-домена, поэтому мне просто нужно сделать простой выбор из db

Прямая связь между браузером и базой данных - это, безусловно, не подходящее решение.

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

Более общее решение такого рода проблем - XMLRPC (для записи я использовал его под Code Igniter/Flash ActionScript 3.0), хотя он не так прост в использовании.

Если вам нужно получить данные из двух разных доменов, затем выполните вышеописанное на обоих из них и сделайте код JavaScript, вызывающий два разных URI, и объедините данные (при необходимости).

+0

Что вы имеете в виду «вызов этого метода через свой общедоступный URI»? Можете ли вы показать пример? thx – Patrik18

+0

Одной из обязанностей «веб-рамки» (CodeIgniter, Catalyst) является сопоставление URI с методами класса. Говоря простыми словами, это означает, какой код следует выполнять, когда пользователь посещает определенный URL-адрес, для которого отвечает веб-приложение. Пример: при посещении www.simplemath.org/basicops/sum?a=1&b=2 веб-приложений выходов . В простом, но реалистичном сценарии у вас будет класс с именем BasicOps, который будет иметь метод sum(). Этот метод будет передан двумя параметрами, суммирует их и отправляет вывод в браузер. –

Смежные вопросы