JavaScript può connettersi con MySQL? Se é cosi, come?
JavaScript può connettersi con MySQL? Se é cosi, come?
Risposte:
No, JavaScript non può connettersi direttamente a MySQL. Ma puoi mescolare JS con PHP per farlo.
JavaScript è un linguaggio lato client e il tuo database MySQL verrà eseguito su un server
JavaScript lato client non può accedere a MySQL senza un qualche tipo di bridge. Ma le affermazioni in grassetto sopra che JavaScript è solo un linguaggio lato client non sono corrette: JavaScript può essere eseguito lato client e lato server, come con Node.js.
Node.js può accedere a MySQL tramite qualcosa come https://github.com/sidorares/node-mysql2
Potresti anche sviluppare qualcosa usando Socket.IO
Volevi chiedere se un'app JS lato client può accedere a MySQL? Non sono sicuro che tali biblioteche esistano, ma sono possibili.
EDIT : dalla scrittura, ora abbiamo MySQL Cluster :
Il driver JavaScript MySQL Cluster per Node.js è proprio quello che sembra: è un connettore che può essere chiamato direttamente dal tuo codice JavaScript per leggere e scrivere i tuoi dati. Poiché accede direttamente ai nodi di dati, non vi è alcuna latenza aggiuntiva dal passaggio attraverso un server MySQL ed è necessario convertire dal codice JavaScript // oggetti in operazioni SQL. Se per qualche motivo preferisci che passi attraverso un server MySQL (ad esempio se stai archiviando tabelle in InnoDB), allora puoi configurarlo.
JSDB offre un'interfaccia JS ai DB.
Un set curato di pacchetti DB per Node.js da sindresorhus.
Se vuoi connetterti a un database MySQL usando JavaScript, puoi usare Node.js e una libreria chiamata mysql . È possibile creare query e ottenere risultati come un array di registri. Se vuoi provarlo, puoi usare il mio generatore di progetti per creare un backend e scegliere MySQL come database a cui connetterti. Quindi, esponi la tua nuova API REST o endpoint GraphQL in primo piano e inizia a lavorare con il tuo database MySQL.
VECCHIA RISPOSTA LASCIATA DA NOSTALGIA
POI
Poiché comprendo la domanda e correggo se sbaglio, si riferisce al modello di server classico con JavaScript solo sul lato client. In questo modello classico, con i server LAMP (Linux, Apache, MySQL, PHP) il linguaggio a contatto con il database era PHP, quindi per richiedere dati al database è necessario scrivere script PHP ed echeggiare i dati restituiti al client. Fondamentalmente, la distribuzione delle lingue in base alle macchine fisiche era:
Questo ha risposto a un modello MVC (Model, View, Controller) in cui avevamo le seguenti funzionalità:
Per il controller, abbiamo strumenti davvero interessanti come jQuery , come libreria "di basso livello" per controllare la struttura HTML (DOM), e poi nuovi strumenti più di alto livello come Knockout.js che ci permettono di creare osservatori che collegano diversi Elementi DOM che li aggiornano quando si verificano eventi. C'è anche Angular.js di Google che funziona in modo simile, ma sembra essere un ambiente completo. Per aiutarti a scegliere tra loro, ecco due ottime analisi dei due strumenti: Knockout vs. Angular.js e Knockout.js vs. Angular.js . Sto ancora leggendo. Spero ti aiutino.
ADESSO
Nei server moderni basati su Node.js, utilizziamo JavaScript per tutto. Node.js è un ambiente JavaScript con molte librerie che funzionano con Google V8, il motore JavaScript di Chrome. Il modo in cui lavoriamo con questi nuovi server è:
Quindi abbiamo molti pacchetti che possiamo installare usando NPM (gestore di pacchetti Node.js) e usarli direttamente nel nostro server Node.js solo richiedendolo (per quelli di voi che vogliono imparare Node.js, provate questo tutorial per principianti per una panoramica). E tra questi pacchetti, ne hai alcuni per accedere ai database. Usando questo puoi usare JavaScript sul lato server per accedere ai miei database SQL.
Ma il meglio che puoi fare se hai intenzione di lavorare con Node.js è usare i nuovi database NoSQL come MongoDB , basati su file JSON. Invece di memorizzare tabelle come MySQL, memorizza i dati in strutture JSON, quindi puoi inserire dati diversi all'interno di ciascuna struttura come lunghi vettori numerici invece di creare tabelle enormi per le dimensioni della più grande.
Spero che questa breve spiegazione ti sia utile e, se vuoi saperne di più, ecco alcune risorse che puoi utilizzare:
Spero che ti aiuti a iniziare.
Divertiti!
Un po 'in ritardo, ma di recente ho scoperto che MySql 5.7 ha il plug-in http tramite il quale l'utente può connettersi direttamente a mysql ora.
Cerca Http Client per mysql 5.7
La risposta semplice è: no.
JavaScript è un linguaggio lato client che viene eseguito nel browser ( nonostante node.js ) e MySQL è una tecnologia lato server che gira sul server.
Ciò significa che in genere si utilizza un linguaggio lato server come ASP.NET o PHP per connettersi al database.
SÌ? Dai un'occhiata a una meteora. link:
http://meteor.com/screencast e http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
Non capisco come sia fatto. Ma Nettuts + ha messo questa cosa nella sezione javascript-ajax, forse accade la magia.
Mostra anche un modo per connettersi e inserire in MongoDB con JS, in questo modo:
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});
A seconda del proprio ambiente, è possibile utilizzare Rhino per farlo, vedere il sito Web di Rhino . Questo ti dà accesso a tutte le librerie Java da JavaScript.
Sì. C'è un plugin HTTP per MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Sto solo cercando su Google ora, il che mi ha portato a questa domanda su stackoverflow. Dovresti essere in grado di AJAX un database MySQL ora o in un prossimo futuro (affermano che non è pronto per la produzione).
In genere, è necessario un linguaggio di scripting lato server come PHP per connettersi a MySQL, tuttavia, se si sta solo eseguendo un mockup veloce, è possibile utilizzare http://www.mysqljs.com per connettersi a MySQL da Javascript utilizzando il codice come segue:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Va detto che questo non è un modo sicuro per accedere a MySql ed è adatto solo per demo private o scenari in cui il codice sorgente non è accessibile agli utenti finali, come nelle app iOS di Phonegap.
var strSrc = "http://mysqljs.com/sql.aspx?";
Si, puoi. I connettori MySQL utilizzano TCP per la connessione e in JS esiste una versione leggermente modificata del client TCP chiamata Websocket. Ma non puoi connetterti direttamente al server MySQL con websocket. Avrai bisogno di un ponte di terze parti tra websocket e mysql. Riceve la query da websocket, la invia a mysql, il risultato della risposta e la rinvia a JS.
E questo è il mio bridge di esempio scritto in C # con la libreria 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();
}
}
Lato JS:
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
No.
È necessario scrivere un wrapper in PHP e quindi esportare i dati restituiti (probabilmente come Json). MAI, ottenere dal tuo "_GET" il codice SQL, poiché questo è chiamato iniezione SQL (le persone che imparano questo avranno il pieno controllo sul tuo database).
Questo è un esempio che ho scritto:
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;
}
Impara le iniezioni SQL per favore.
Puoi connetterti a MySQL da Javascript tramite un'applet JAVA. L'applet JAVA incorporerebbe il driver JDBC per MySQL che ti consentirà di connetterti a MySQL.
Ricorda che se vuoi connetterti a un server MySQL remoto (diverso da quello da cui hai scaricato l'applet) dovrai chiedere agli utenti di concedere permessi estesi all'applet. Per impostazione predefinita, l'applet può connettersi solo al server da cui viene scaricata.
JavaScript non può connettersi direttamente al DB per ottenere i dati necessari, ma puoi utilizzare AJAX. Per semplificare la richiesta AJAX al server puoi utilizzare jQuery JS framework http://jquery.com . Ecco un piccolo esempio
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);
Ho capito la tua domanda, penso che tu la stia confondendo con linguaggi come dot.net e java in cui puoi aprire la connessione DB all'interno del tuo codice. No, JavaScript non può connettersi direttamente a MySQL poiché JavaScript è un linguaggio di scripting lato client (Exception Node.js). Per accedere ai dati è necessario un livello intermedio come l'API RESTful.
Puoi aggiungere una connessione mysql usando il file PHP. Di seguito è riportato l'esempio di file 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?
.