Чи може 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? Я не впевнений, чи існують такі бібліотеки, але вони можливі.
EDIT : З моменту написання, тепер у нас є кластер MySQL :
Драйвер 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 (Model, View, Controller), де ми мали таку функціональність:
Для контролера у нас є дійсно цікаві інструменти, такі як jQuery , як "низькорівнева" бібліотека для управління структурою HTML (DOM), а потім нові, більш високі рівні, як Knockout.js, які дозволяють нам створювати спостерігачі, які з'єднують різні Елементи DOM, оновлюючи їх, коли відбуваються події. Існує також Angular.js від Google, який працює аналогічно, але здається повноцінним середовищем. Щоб допомогти вам вибрати серед них, тут у вас є два чудових аналізи двох інструментів: Knockout vs. Angular.js та Knockout.js vs. Angular.js . Я все ще читаю. Сподіваюся, вони допоможуть вам.
ЗАРАЗ
У сучасних серверах, що базуються на Node.js, ми використовуємо JavaScript для всього. Node.js - середовище JavaScript з багатьма бібліотеками, які працюють з Google V8, двигуном JavaScript JavaScript. Як ми працюємо з цими новими серверами:
Тоді у нас є маса пакунків, які ми можемо встановити за допомогою NPM (менеджера пакунків Node.js) та використовувати їх безпосередньо на нашому сервері Node.js, який просто потребує цього (для тих, хто хоче вивчити Node.js, спробуйте цей підручник для початківців для огляду). І серед цих пакетів у вас є деякі з них для доступу до баз даних. Використовуючи це, ви можете використовувати JavaScript на стороні сервера для доступу до моїх баз даних 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?";
Так, ти можеш. MySQL-роз'єми використовують TCP для підключення, а в JS є трохи змінена версія клієнта TCP під назвою Websocket. Але ви не можете безпосередньо підключитися до сервера MySQL за допомогою веб-сокета. Вам знадобиться якийсь сторонній міст між websocket та mysql. Він отримує запит від websocket, відправляє його в mysql, відповідає на відповідь та надсилає JS.
І це мій приклад міст, написаний на C # з бібліотекою-гострою веб-розеткою:
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 (крім того, з якого ви завантажили аплет), вам потрібно буде попросити користувачів надати розширені дозволи на аплет. За замовчуванням аплет може підключатися лише до того сервера, з якого завантажено.
Якщо ви не заблоковані на MySQL, ви можете перейти на PostgreSQL. Він підтримує процедури JavaScript (PL / V8) всередині бази даних. Це дуже швидко і потужно. Оформити цю публікацію .
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 є клієнтською мовою сценаріїв (виняток 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?
.