Kann JavaScript eine Verbindung mit MySQL herstellen? Wenn das so ist, wie?
Kann JavaScript eine Verbindung mit MySQL herstellen? Wenn das so ist, wie?
Antworten:
Nein, JavaScript kann keine direkte Verbindung zu MySQL herstellen. Sie können dazu jedoch JS mit PHP mischen.
JavaScript ist eine clientseitige Sprache und Ihre MySQL-Datenbank wird auf einem Server ausgeführt
Clientseitiges JavaScript kann ohne eine Brücke nicht auf MySQL zugreifen. Die obigen kühnen Aussagen, dass JavaScript nur eine clientseitige Sprache ist, sind jedoch falsch. JavaScript kann wie bei Node.js clientseitig und serverseitig ausgeführt werden.
Node.js kann über https://github.com/sidorares/node-mysql2 auf MySQL zugreifen
Sie können auch etwas mit Socket.IO entwickeln
Wollten Sie fragen, ob eine clientseitige JS-App auf MySQL zugreifen kann? Ich bin nicht sicher, ob solche Bibliotheken existieren, aber sie sind möglich.
EDIT : Seit dem Schreiben haben wir jetzt MySQL Cluster :
Der MySQL Cluster JavaScript-Treiber für Node.js ist genau das, wonach es sich anhört - es ist ein Connector, der direkt aus Ihrem JavaScript-Code aufgerufen werden kann, um Ihre Daten zu lesen und zu schreiben. Da es direkt auf die Datenknoten zugreift, gibt es keine zusätzliche Latenz beim Durchlaufen eines MySQL-Servers und es muss von // JavaScript-Codeobjekten in SQL-Operationen konvertiert werden. Wenn Sie es aus irgendeinem Grund vorziehen, einen MySQL-Server zu durchlaufen (z. B. wenn Sie Tabellen in InnoDB speichern), kann dies konfiguriert werden.
JSDB bietet eine JS-Schnittstelle für DBs.
Eine kuratierte Reihe von DB-Paketen für Node.js von sindresorhus.
Wenn Sie mit JavaScript eine Verbindung zu einer MySQL-Datenbank herstellen möchten, können Sie Node.js und eine Bibliothek namens mysql verwenden . Sie können Abfragen erstellen und Ergebnisse als Array von Registern abrufen. Wenn Sie es ausprobieren möchten, können Sie mit meinem Projektgenerator ein Backend erstellen und MySQL als Datenbank für die Verbindung auswählen . Stellen Sie dann einfach Ihre neue REST-API oder Ihren neuen GraphQL- Endpunkt vor und beginnen Sie mit der Arbeit mit Ihrer MySQL-Datenbank.
ALTE ANTWORT VON NOSTALGIA
DANN
Da ich die Frage verstehe und mich korrigiere, wenn ich falsch liege, bezieht sie sich nur auf der Clientseite auf das klassische Servermodell mit JavaScript. In diesem klassischen Modell, mit LAMP - Server (Linux, Apache, MySQL, PHP) die Sprache , in Kontakt mit der Datenbank war PHP, so auf Anfrage Daten in die Datenbank , die Sie benötigen PHP - Skripte und schreiben echo die zurückkehrenden Daten an den Client. Grundsätzlich war die Verteilung der Sprachen nach physischen Maschinen:
Dies antwortete auf ein MVC-Modell (Modell, Ansicht, Controller), bei dem wir die folgenden Funktionen hatten:
Für den Controller haben wir wirklich interessante Tools wie jQuery als "Low-Level" -Bibliothek zur Steuerung der HTML-Struktur (DOM) und dann neue, übergeordnete als Knockout.js , mit denen wir Beobachter erstellen können, die unterschiedliche Verbindungen herstellen DOM-Elemente aktualisieren sie, wenn Ereignisse auftreten. Es gibt auch Angular.js von Google, das auf ähnliche Weise funktioniert, aber eine vollständige Umgebung zu sein scheint. Um Ihnen bei der Auswahl zu helfen, finden Sie hier zwei hervorragende Analysen der beiden Tools: Knockout vs. Angular.js und Knockout.js vs. Angular.js . Ich lese immer noch. Hoffe sie helfen dir.
JETZT
In modernen Servern, die auf Node.js basieren, verwenden wir JavaScript für alles. Node.js ist eine JavaScript-Umgebung mit vielen Bibliotheken, die mit Google V8, Chrome JavaScript Engine, arbeiten. Wir arbeiten mit diesen neuen Servern wie folgt:
Dann haben wir viele Pakete, die wir mit dem NPM (Node.js-Paketmanager) installieren und direkt auf unserem Node.js-Server verwenden können, der dies nur benötigt (für diejenigen unter Ihnen, die Node.js lernen möchten, probieren Sie dieses Anfänger-Tutorial aus für eine Übersicht). Und unter diesen Paketen haben Sie einige, um auf Datenbanken zuzugreifen. Mit dieser Option können Sie serverseitig JavaScript verwenden, um auf My SQL-Datenbanken zuzugreifen.
Das Beste, was Sie tun können, wenn Sie mit Node.js arbeiten möchten, ist die Verwendung der neuen NoSQL-Datenbanken wie MongoDB , die auf JSON-Dateien basieren. Anstatt Tabellen wie MySQL zu speichern, werden die Daten in JSON-Strukturen gespeichert, sodass Sie unterschiedliche Daten wie lange numerische Vektoren in jede Struktur einfügen können, anstatt große Tabellen für die Größe der größten zu erstellen.
Ich hoffe, diese kurze Erklärung wird für Sie nützlich, und wenn Sie mehr darüber erfahren möchten, haben Sie hier einige Ressourcen, die Sie verwenden können:
Ich hoffe es hilft dir anzufangen.
Habe Spaß!
Etwas spät, aber kürzlich habe ich herausgefunden, dass MySql 5.7 ein http-Plugin hat, über das der Benutzer jetzt direkt eine Verbindung zu MySQL herstellen kann.
Suchen Sie nach Http Client für MySQL 5.7
Einfache Antwort ist: nein.
JavaScript ist eine clientseitige Sprache, die im Browser ausgeführt wird ( ungeachtet node.js ), und MySQL ist eine serverseitige Technologie, die auf dem Server ausgeführt wird.
Das bedeutet, dass Sie normalerweise eine serverseitige Sprache wie ASP.NET oder PHP verwenden, um eine Verbindung zur Datenbank herzustellen.
JA? Schauen Sie sich einen Meteor an. Links:
http://meteor.com/screencast und http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
Ich verstehe nicht, wie es gemacht wird. Aber Nettuts + hat dieses Ding in den Javascript-Ajax-Bereich aufgenommen, vielleicht passiert Magie.
Es zeigt auch eine Möglichkeit, mit JS eine Verbindung zu MongoDB herzustellen und einzufügen, wie folgt:
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});
Abhängig von Ihrer Umgebung können Sie Rhino verwenden, um dies zu tun. Weitere Informationen finden Sie auf der Rhino-Website . Auf diese Weise können Sie über JavaScript auf alle Java-Bibliotheken zugreifen.
Ja. Es gibt ein HTTP-Plugin für MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Ich google jetzt nur darüber, was mich zu dieser Frage zum Stapelüberlauf führte. Sie sollten in der Lage sein, eine MySQL-Datenbank jetzt oder in naher Zukunft zu AJAXEN (sie behaupten, sie sei nicht produktionsbereit).
Normalerweise benötigen Sie eine serverseitige Skriptsprache wie PHP, um eine Verbindung zu MySQL herzustellen. Wenn Sie jedoch nur ein schnelles Modell erstellen, können Sie http://www.mysqljs.com verwenden , um eine Verbindung zu MySQL über Javascript mithilfe von Code as herzustellen folgt:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Es muss erwähnt werden, dass dies keine sichere Methode für den Zugriff auf MySql ist und nur für private Demos oder Szenarien geeignet ist, in denen Endbenutzer nicht auf den Quellcode zugreifen können, z. B. in Phonegap iOS-Apps.
var strSrc = "http://mysqljs.com/sql.aspx?";
Ja, du kannst. MySQL-Konnektoren verwenden TCP für die Verbindung, und in JS gibt es eine etwas modifizierte Version des TCP-Clients namens Websocket. Sie können jedoch keine direkte Verbindung zum MySQL-Server mit dem Websocket herstellen. Sie benötigen eine Brücke eines Drittanbieters zwischen Websocket und MySQL. Es empfängt eine Anfrage vom Websocket, sendet sie an MySQL, antwortet auf das Ergebnis und sendet sie erneut an JS.
Und dies ist meine Beispielbrücke, die in C # mit einer websockelscharfen Bibliothek geschrieben wurde:
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 Seite:
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
Nein.
Sie müssen einen Wrapper in PHP schreiben und dann die zurückgegebenen Daten exportieren (wahrscheinlich als Json). Holen Sie sich NIEMALS von Ihrem "_GET" den SQL-Code, da dies als SQL-Injection bezeichnet wird (Personen, die dies lernen, haben die volle Kontrolle über Ihre Datenbank).
Dies ist ein Beispiel, das ich geschrieben habe:
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;
}
Erfahren Sie bitte mehr über SQL-Injektionen.
Sie können über Javascript über ein JAVA-Applet eine Verbindung zu MySQL herstellen. Das JAVA-Applet würde den JDBC-Treiber für MySQL einbetten, mit dem Sie eine Verbindung zu MySQL herstellen können.
Denken Sie daran, dass Sie Benutzer auffordern müssen, dem Applet erweiterte Berechtigungen zu erteilen, wenn Sie eine Verbindung zu einem Remote-MySQL-Server herstellen möchten (außer dem, von dem Sie das Applet heruntergeladen haben). Standardmäßig kann das Applet nur eine Verbindung zu dem Server herstellen, von dem es heruntergeladen wurde.
JavaScript kann keine direkte Verbindung zur Datenbank herstellen, um die erforderlichen Daten abzurufen. Sie können jedoch AJAX verwenden. Um die AJAX-Anforderung an den Server zu vereinfachen, können Sie das jQuery JS-Framework http://jquery.com verwenden . Hier ist ein kleines Beispiel
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);
Ich habe Ihre Frage verstanden. Ich denke, Sie verwechseln sie mit Sprachen wie dot.net und java, in denen Sie die DB-Verbindung in Ihrem Code öffnen können. Nein, JavaScript kann keine direkte Verbindung zu MySQL herstellen, da JavaScript eine clientseitige Skriptsprache ist (Ausnahme Node.js). Für den Zugriff auf Daten benötigen Sie eine mittlere Ebene wie die RESTful-API.
Sie können eine MySQL-Verbindung mithilfe einer PHP-Datei hinzufügen. Unten ist das Beispiel einer PHP-Datei.
<?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?
.