Kann sich JavaScript mit MySQL verbinden? Wenn das so ist, wie?
Nein, JavaScript kann keine direkte Verbindung zu MySQL herstellen. Sie können JS jedoch mit PHP mischen.
JavaScript ist eine clientseitige Sprache, und Ihre MySQL-Datenbank wird auf einem Server ausgeführt
Clientseitiges JavaScript kann ohne Brücke nicht auf MySQL zugreifen. Die obigen fetten Aussagen, dass JavaScript nur eine clientseitige Sprache ist, sind jedoch falsch. JavaScript kann wie Node.js clientseitig und serverseitig ausgeführt werden.
Node.js kann auf MySQL über etwas wie https://github.com/sidorares/node-mysql2 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, was er sich anhört - er ist ein Connector, der direkt aus Ihrem JavaScript-Code aufgerufen werden kann, um Ihre Daten zu lesen und zu schreiben. Da direkt auf die Datenknoten zugegriffen wird, gibt es keine zusätzliche Latenzzeit, wenn ein MySQL-Server durchgeleitet wird, und muss JavaScript-Code-/// Objekte in SQL-Vorgänge konvertieren. Wenn Sie aus irgendeinem Grund einen MySQL-Server durchlaufen möchten (z. B. wenn Sie Tabellen in InnoDB speichern), können Sie dies konfigurieren.
JSDB bietet DBs eine JS-Schnittstelle.
Ein kuratierter Satz von DB-Paketen für Node.js von sindresorhus.
DANN
Da ich die Frage verstehe und korrigiere, falls ich falsch liege, bezieht sich das klassische Servermodell mit JavaScript nur auf der Clientseite. Bei diesem klassischen Modell mit LAMP -Servern (Linux, Apache, MySQL, PHP) ist die Sprache, die mit der Datenbank in Kontakt steht, PHP. Um Daten an die Datenbank anzufordern, müssen Sie PHP -Skripts schreiben und Echo die zurückgegebenen Daten an den Client. Grundsätzlich ist die Sprachenverteilung nach physischen Maschinen:
Dies entspricht einem MVC-Modell (Modell, Ansicht, Controller), bei dem wir die folgende Funktionalität haben:
Für den Controller haben wir wirklich interessante Tools wie jQuery , als "Low-Level" -Bibliothek, um die HTML-Struktur (DOM) zu steuern, und dann neue, höhere Levels als Knockout.js , die uns erlauben Beobachter erstellen, die verschiedene DOM-Elemente miteinander verbinden, und diese beim Auftreten von Ereignissen aktualisieren. 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, gibt es zwei hervorragende Analysen der beiden Tools: Knockout vs. Angular.js und Knockout.js vs. Angular.js . Ich lese immer noch. Hoffe, dass sie dir helfen.
JETZT
In modernen Servern in Node.js verwenden wir JavaScript für alles. Node.js ist eine JavaScript-Umgebung mit vielen Bibliotheken, die mit der Google V8-Chrome-JavaScript-Engine arbeiten. Wir arbeiten mit diesen neuen Servern:
Dann haben wir eine Vielzahl von Paketen, die wir mit dem NPM (Node.js Paketmanager) installieren können, und sie direkt in unserem Node.js-Server verwenden können (nur für diejenigen, die dies wünschen) Um Node.js zu lernen, probieren Sie dieses Anfänger-Tutorial für einen Überblick. Und unter diesen Paketen haben Sie einige, um auf Datenbanken zuzugreifen. Mit diesem können Sie auf der Serverseite JavaScript verwenden, um auf My SQL-Datenbanken zuzugreifen.
Wenn Sie jedoch mit Node.js arbeiten möchten, können Sie die neuen NoSQL-Datenbanken wie MongoDB verwenden, die auf JSON-Dateien basieren. Anstatt Tabellen wie MySQL zu speichern, werden die Daten in JSON-Strukturen gespeichert. Sie können also unterschiedliche Daten wie lange numerische Vektoren in jede Struktur einfügen, statt riesige 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:
Wenn Sie über einen Knotenserver verfügen, wenn Sie mit einer MySQL-Datenbank kommunizieren möchten, können Sie eine Bibliothek mit dem Namen mysql verwenden. Sie können Abfragen wie mit PHP erstellen, und Sie können es mit einem -API-Generator versuchen, den ich erstellt habe und den Sie mit NPM herunterladen können. Es verfügt über einen Assistenten, mit dem Sie auswählen können, welche Datenbanken Sie verwenden möchten.
Ich hoffe es hilft dir beim Start.
Habe Spaß!.
Have fun!
Ich denke, Sie müssten so etwas wie PHP in die Gleichung einfügen. PHP, um mit der Datenbank zu interagieren, und Sie könnten dann mit Javascript AJAX aufrufen.
Etwas spät, aber kürzlich habe ich herausgefunden, dass MySql 5.7 ein HTTP-Plugin hat, über das sich der Benutzer jetzt direkt mit MySQL verbinden 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 ( node.js ungeachtet) 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 + setzen diese Sache in den Javascript-Ajax-Abschnitt, vielleicht geschieht Magie.
Es zeigt auch eine Möglichkeit, sich mit JS mit MongoDB zu verbinden und einzufügen:
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});
Ja. Es gibt ein HTTP-Plugin für MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Ich google gerade jetzt, was mich zu dieser Stackoverflow-Frage führte. Sie sollten in der Lage sein, eine MySQL-Datenbank jetzt oder in naher Zukunft AJAX zu erstellen (sie behaupten, dass sie nicht produktionsbereit ist).
Abhängig von Ihrer Umgebung können Sie Rhino dazu verwenden, siehe Rhino-Website . Dadurch haben Sie von JavaScript aus Zugriff auf alle Java-Bibliotheken.
Sie können AJAX -Anfragen an einige serverseitige RESTful-Wrapper für MySQL senden, z. B. DBSlayer , PhpRestSQL oder AlsoSQL (für Drizzle , eine Gabel von MySQL ).
Normalerweise benötigen Sie eine serverseitige Skriptsprache wie PHP, um eine Verbindung zu MySQL herzustellen. Wenn Sie jedoch nur ein schnelles Mockup durchführen, können Sie http://www.mysqljs.com verwenden Stellen Sie von Javascript aus eine Verbindung zu MySQL her, indem Sie den Code wie folgt verwenden:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Es muss erwähnt werden, dass dies kein sicherer 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.
Ja, du kannst. MySQL-Konnektoren verwenden TCP für die Verbindung, und in JS gibt es eine kleine modifizierte Version von TCP Client namens Websocket. Mit dem Websocket können Sie jedoch keine direkte Verbindung zum MySQL-Server herstellen. Sie benötigen eine 3rd Party Bridge zwischen Websocket und MySQL. Es empfängt eine Abfrage vom Websocket, sendet sie an MySQL, gibt ein Antwortergebnis aus und sendet sie erneut an JS.
Und dies ist meine in C # geschriebene Beispielbrücke mit websocket-scharfer Bibliothek:
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");
JavaScript kann keine direkte Verbindung zur Datenbank herstellen, um die erforderlichen Daten abzurufen. Sie können jedoch AJAX verwenden. Um die Anforderung von AJAX an den Server zu vereinfachen, können Sie 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();
$out['first'] = 'first value';
$out['second'] = 'second value';
echo json_encode($out);
Sie können von Javascript aus über ein Java-Applet eine Verbindung zu MySQL herstellen. Das Java-Applet würde den JDBC-Treiber für MySQL einbetten, sodass Sie sich mit MySQL verbinden können.
Denken Sie daran, dass Sie, wenn Sie eine Verbindung zu einem MySQL-Remote-Server herstellen möchten (mit Ausnahme des Servers, von dem Sie das Applet heruntergeladen haben), die Benutzer auffordern müssen, erweiterte Berechtigungen für das Applet zu erteilen. Standardmäßig kann das Applet nur eine Verbindung zu dem Server herstellen, von dem es heruntergeladen wird.
Wenn Sie nicht für MySQL gesperrt sind, können Sie zu PostgreSQL wechseln. Es unterstützt JavaScript-Prozeduren (PL/V8) in der Datenbank. Es ist sehr schnell und kraftvoll. Checken Sie diese post .
Nein.
Sie müssen einen Wrapper in PHP schreiben und dann die zurückgegebenen Daten exportieren (wahrscheinlich als Json). NIEMALS erhalten Sie von Ihrem "_GET" den SQL-Code, da dies als SQL-Injektion bezeichnet wird (Personen, die dies erfahren, 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;
}
Informieren Sie sich bitte über SQL-Injektionen.