Может ли JavaScript соединяться с MySQL? Если да, то как?
Может ли JavaScript соединяться с MySQL? Если да, то как?
Ответы:
Нет, JavaScript не может напрямую подключаться к MySQL. Но для этого вы можете смешивать JS с PHP.
JavaScript - это клиентский язык, и ваша база данных MySQL будет работать на сервере.
Клиентский JavaScript не может получить доступ к MySQL без какого-либо моста. Но приведенные выше жирные утверждения о том, что JavaScript - это просто язык на стороне клиента, неверны - JavaScript может работать как на стороне клиента, так и на стороне сервера, как с Node.js.
Node.js может получить доступ к MySQL через что-то вроде https://github.com/sidorares/node-mysql2
Вы также можете разработать что-нибудь с помощью Socket.IO
Вы хотели спросить, может ли клиентское JS-приложение получить доступ к MySQL? Я не уверен, существуют ли такие библиотеки, но они возможны.
РЕДАКТИРОВАТЬ : С момента написания у нас теперь есть MySQL Cluster :
Драйвер MySQL Cluster JavaScript для Node.js - это именно то, чем кажется, - это коннектор, который можно вызывать непосредственно из кода JavaScript для чтения и записи данных. Поскольку он обращается к узлам данных напрямую, нет дополнительной задержки при прохождении через сервер MySQL и необходимости преобразования // объектов кода JavaScript в операции SQL. Если по какой-то причине вы предпочитаете, чтобы он проходил через сервер MySQL (например, если вы храните таблицы в InnoDB), это можно настроить.
JSDB предлагает интерфейс JS для БД.
Куратор набор пакетов DB для Node.js из sindresorhus.
Если вы хотите подключиться к базе данных MySQL с помощью JavaScript, вы можете использовать Node.js и библиотеку под названием mysql . Вы можете создавать запросы и получать результаты в виде массива регистров. Если вы хотите попробовать, вы можете использовать мой генератор проектов, чтобы создать серверную часть и выбрать MySQL в качестве базы данных для подключения. Затем просто представьте свой новый REST API или конечную точку GraphQL себе и начните работать со своей базой данных MySQL.
СТАРЫЙ ОТВЕТ, ОСТАВЛЕННЫЙ НОСТАЛЬГИЕЙ
ЗАТЕМ
Поскольку я понимаю вопрос и поправляю меня, если я ошибаюсь, он относится к классической модели сервера с JavaScript только на стороне клиента. В этой классической модели с серверами LAMP (Linux, Apache, MySQL, PHP) языком, контактирующим с базой данных, был PHP, поэтому для запроса данных в базу данных вам необходимо написать сценарии PHP и передать возвращаемые данные клиенту. В основном, распределение языков по физическим машинам было:
Это отвечало модели MVC (модель, представление, контроллер), где у нас были следующие функции:
Что касается контроллера, у нас есть действительно интересные инструменты, такие как jQuery , как «низкоуровневая» библиотека для управления структурой HTML (DOM), а затем новые, более высокоуровневые, как Knockout.js, которые позволяют нам создавать наблюдателей, которые подключают разные Элементы DOM обновляют их при возникновении событий. Существует также Angular.js от Google, который работает аналогичным образом, но кажется полноценной средой. Чтобы помочь вам выбрать среди них, здесь у вас есть два отличных анализа двух инструментов: Knockout против Angular.js и Knockout.js против Angular.js . Я все еще читаю. Надеюсь, они тебе помогут.
СЕЙЧАС
На современных серверах, основанных на Node.js, мы используем JavaScript для всего. Node.js - это среда JavaScript со многими библиотеками, которые работают с Google V8, движком Chrome JavaScript. Мы работаем с этими новыми серверами:
Затем у нас есть много пакетов, которые мы можем установить с помощью NPM (диспетчера пакетов Node.js) и использовать их непосредственно на нашем сервере Node.js, который просто требует этого (для тех из вас, кто хочет изучить Node.js, попробуйте это руководство для начинающих. для обзора). И среди этих пакетов у вас есть некоторые из них для доступа к базам данных. Используя это, вы можете использовать JavaScript на стороне сервера для доступа к базам данных My SQL.
Но лучшее, что вы можете сделать, если собираетесь работать с Node.js, - это использовать новые базы данных NoSQL, такие как MongoDB , на основе файлов JSON. Вместо того, чтобы хранить таблицы, такие как MySQL, он хранит данные в структурах JSON, поэтому вы можете помещать разные данные в каждую структуру, например длинные числовые векторы, вместо того, чтобы создавать огромные таблицы для размера самой большой.
Я надеюсь, что это краткое объяснение станет для вас полезным, и если вы хотите узнать об этом больше, у вас есть несколько ресурсов, которые вы можете использовать:
Надеюсь, это поможет вам начать.
Радоваться, веселиться!
Немного поздно, но недавно я обнаружил, что MySql 5.7 получил плагин http, через который пользователь теперь может напрямую подключаться к mysql.
Найдите Http-клиент для mysql 5.7
Простой ответ: нет.
JavaScript - это клиентский язык, который запускается в браузере (не считая node.js ), а MySQL - это серверная технология, которая работает на сервере.
Это означает, что вы обычно используете серверный язык, такой как ASP.NET или PHP, для подключения к базе данных.
ДА? Взгляните на метеор. Ссылки:
http://meteor.com/screencast и http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
Я не понимаю, как это делается. Но Nettuts + поместил эту штуку в раздел javascript-ajax, может случится волшебство.
Он также показывает способ подключения и вставки в MongoDB с помощью JS, например:
Products.insert({Name : "Hammer", Price : 4.50, InStock : true});
Products.insert({Name : "Wrench", Price : 2.70, InStock : true});
Products.insert({Name : "Screw Driver", Price : 3.00, InStock : false});
Products.insert({Name : "Drill", Price : 5.25, InStock : true});
В зависимости от вашей среды вы можете использовать Rhino для этого, см. Веб-сайт Rhino . Это дает вам доступ ко всем библиотекам Java из JavaScript.
Да. Есть плагин HTTP для MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Я просто гуглил об этом сейчас, что привело меня к этому вопросу о stackoverflow. Вы должны иметь возможность использовать AJAX для базы данных MySQL сейчас или в ближайшем будущем (они утверждают, что она не готова к производству).
Как правило, для подключения к MySQL требуется язык сценариев на стороне сервера, например PHP, однако, если вы просто делаете быстрый макет, вы можете использовать http://www.mysqljs.com для подключения к MySQL из Javascript, используя код как следует:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Следует отметить, что это небезопасный способ доступа к MySql и подходит только для частных демонстраций или сценариев, в которых конечные пользователи не могут получить доступ к исходному коду, например, в приложениях Phonegap для iOS.
var strSrc = "http://mysqljs.com/sql.aspx?";
Вы можете отправлять запросы AJAX некоторым серверным оболочкам RESTful для MySQL, таким как DBSlayer , PhpRestSQL или такжеSQL (для Drizzle , ответвление MySQL).
Да, ты можешь. Соединители MySQL используют TCP для подключения, а в JS есть небольшая модифицированная версия клиента TCP под названием Websocket. Но вы не можете напрямую подключиться к серверу MySQL с помощью websocket. Вам понадобится сторонний мост между websocket и mysql. Он получает запрос от веб-сокета, отправляет его в mysql, результат ответа и повторно отправляет в JS.
И это мой пример моста, написанный на C # с библиотекой websocket-sharp:
class JSQLBridge : WebSocketBehavior
{
MySqlConnection conn;
protected override void OnMessage(MessageEventArgs e)
{
if (conn == null)
{
try
{
conn = new MySqlConnection(e.Data);
conn.Open();
}
catch (Exception exc)
{
Send(exc.Message);
}
}
else
{
try
{
MySqlCommand cmd = new MySqlCommand(e.Data, conn);
cmd.ExecuteNonQuery();
Send("success");
}
catch (Exception exc)
{
Send(exc.Message);
}
}
}
protected override void OnClose(CloseEventArgs e)
{
if (conn != null)
conn.Close();
}
}
Сторона JS:
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
Нет.
Вам нужно написать оболочку на PHP, а затем экспортировать возвращаемые данные (возможно, как Json). НИКОГДА не получайте из своего "_GET" код SQL, так как это называется инъекцией SQL (люди, которые узнают об этом, будут иметь полный контроль над вашей базой данных).
Это пример, который я написал:
function getJsonData()
{
global $db;
if (!$db->isConnected()) {
return "Not connected";
}
$db->query("SELECT * FROM entries");
$values = array();
while( $v = $db->fetchAssoc()){
$values[] = $v;
}
return json_encode($values);
}
switch (@$_GET["cmd"]){
case 'data':
print getJsonData();
exit;
default:
print getMainScreen();
exit;
}
Узнай, пожалуйста, о SQL-инъекциях.
Вы можете подключиться к MySQL из Javascript через апплет JAVA. В апплет JAVA будет встроен драйвер JDBC для MySQL, который позволит вам подключаться к MySQL.
Помните, что если вы хотите подключиться к удаленному серверу MySQL (отличному от того, с которого вы загрузили апплет), вам нужно будет попросить пользователей предоставить апплету расширенные разрешения. По умолчанию апплет может подключаться только к тому серверу, с которого он загружен.
JavaScript не может напрямую подключаться к БД для получения необходимых данных, но вы можете использовать AJAX. Чтобы упростить AJAX-запрос к серверу, вы можете использовать jQuery JS framework http://jquery.com . Вот небольшой пример
JS:
jQuery.ajax({
type: "GET",
dataType: "json",
url: '/ajax/usergroups/filters.php',
data: "controller=" + controller + "&view=" + view,
success: function(json)
{
alert(json.first);
alert(json.second);
});
PHP:
$out = array();
// mysql connection and select query
$conn = new mysqli($servername, $username, $password, $dbname);
try {
die("Connection failed: " . $conn->connect_error);
$sql = "SELECT * FROM [table_name] WHERE condition = [conditions]";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$out[] = [
'field1' => $row["field1"],
'field2' => $row["field2"]
];
}
} else {
echo "0 results";
}
} catch(Exception $e) {
echo "Error: " . $e->getMessage();
}
echo json_encode($out);
Я понял ваш вопрос, я думаю, вы путаете его с такими языками, как dot.net и java, где вы можете открыть соединение с БД в своем коде. Нет, JavaScript не может напрямую подключаться к MySQL, поскольку JavaScript - это язык сценариев на стороне клиента (Exception Node.js). Для доступа к данным вам понадобится средний уровень, такой как RESTful API.
Вы можете добавить соединение mysql с помощью файла PHP. Ниже приведен пример файла PHP.
<?php
$con = mysql_connect('localhost:3306', 'dbusername', 'dbpsw');
mysql_select_db("(dbname)", $con);
$sql="SELECT * FROM table_name";
$result = mysql_query($sql);
echo " <table border='1'>
<tr>
<th>Header of Table name</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['(database_column_name)'] . "</td>";
echo "<td>" . $row['database_column_name'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?> }
Can JavaScript connect with MySQL?
.