JavaScript peut-il se connecter à MySQL? Si c'est le cas, comment?
JavaScript peut-il se connecter à MySQL? Si c'est le cas, comment?
Réponses:
Non, JavaScript ne peut pas se connecter directement à MySQL. Mais vous pouvez mélanger JS avec PHP pour ce faire.
JavaScript est un langage côté client et votre base de données MySQL va s'exécuter sur un serveur
Le JavaScript côté client ne peut pas accéder à MySQL sans une sorte de pont. Mais les déclarations en gras ci-dessus selon lesquelles JavaScript n'est qu'un langage côté client sont incorrectes - JavaScript peut s'exécuter côté client et côté serveur, comme avec Node.js.
Node.js peut accéder à MySQL via quelque chose comme https://github.com/sidorares/node-mysql2
Vous pouvez également développer quelque chose en utilisant Socket.IO
Vouliez-vous demander si une application JS côté client peut accéder à MySQL? Je ne sais pas si de telles bibliothèques existent, mais elles sont possibles.
EDIT : Depuis l'écriture, nous avons maintenant MySQL Cluster :
Le pilote JavaScript du cluster MySQL pour Node.js est exactement ce qu'il en est: c'est un connecteur qui peut être appelé directement à partir de votre code JavaScript pour lire et écrire vos données. Comme il accède directement aux nœuds de données, il n'y a pas de latence supplémentaire pour passer par un serveur MySQL et il est nécessaire de convertir des objets de code JavaScript // en opérations SQL. Si, pour une raison quelconque, vous préférez qu'il passe par un serveur MySQL (par exemple si vous stockez des tables dans InnoDB), cela peut être configuré.
JSDB offre une interface JS aux bases de données.
Un ensemble organisé de packages DB pour Node.js de sindresorhus.
Si vous souhaitez vous connecter à une base de données MySQL en utilisant JavaScript, vous pouvez utiliser Node.js et une bibliothèque appelée mysql . Vous pouvez créer des requêtes et obtenir des résultats sous forme de tableau de registres. Si vous voulez l'essayer, vous pouvez utiliser mon générateur de projet pour créer un backend et choisir MySQL comme base de données à connecter. Ensuite, exposez simplement votre nouvel API REST ou point de terminaison GraphQL à votre front et commencez à travailler avec votre base de données MySQL.
ANCIENNE RÉPONSE GAUCHE PAR NOSTALGIE
PUIS
Si je comprends la question et me corrige si je me trompe, cela se réfère au modèle de serveur classique avec JavaScript uniquement côté client. Dans ce modèle classique, avec les serveurs LAMP (Linux, Apache, MySQL, PHP), la langue en contact avec la base de données était PHP, donc pour demander des données à la base de données, vous devez écrire des scripts PHP et faire écho aux données renvoyées au client. Fondamentalement, la répartition des langues selon les machines physiques était:
Cela a répondu à un modèle MVC (modèle, vue, contrôleur) où nous avions les fonctionnalités suivantes:
Pour le contrôleur, nous avons des outils vraiment intéressants comme jQuery , en tant que bibliothèque "bas niveau" pour contrôler la structure HTML (DOM), puis de nouveaux outils plus haut niveau comme Knockout.js qui nous permettent de créer des observateurs qui connectent différents Les éléments DOM les mettent à jour lorsque des événements se produisent. Il existe également Angular.js de Google qui fonctionne de manière similaire, mais qui semble être un environnement complet. Pour vous aider à choisir parmi eux, voici deux excellentes analyses des deux outils: Knockout vs Angular.js et Knockout.js vs Angular.js . Je lis toujours. J'espère qu'ils vous aideront.
MAINTENANT
Dans les serveurs modernes basés sur Node.js, nous utilisons JavaScript pour tout. Node.js est un environnement JavaScript avec de nombreuses bibliothèques qui fonctionnent avec Google V8, moteur JavaScript Chrome. La façon dont nous travaillons avec ces nouveaux serveurs est:
Ensuite, nous avons beaucoup de packages que nous pouvons installer à l'aide du NPM (gestionnaire de packages Node.js) et les utiliser directement dans notre serveur Node.js en le nécessitant juste (pour ceux d'entre vous qui veulent apprendre Node.js, essayez ce tutoriel pour débutants pour un aperçu). Et parmi ces packages, vous en avez certains pour accéder aux bases de données. Grâce à cela, vous pouvez utiliser JavaScript côté serveur pour accéder aux bases de données My SQL.
Mais le mieux que vous puissiez faire si vous comptez travailler avec Node.js est d'utiliser les nouvelles bases de données NoSQL comme MongoDB , basées sur des fichiers JSON. Au lieu de stocker des tables comme MySQL, il stocke les données dans des structures JSON, de sorte que vous pouvez placer des données différentes dans chaque structure comme de longs vecteurs numériques au lieu de créer d'énormes tables pour la taille de la plus grande.
J'espère que cette brève explication vous sera utile, et si vous voulez en savoir plus à ce sujet, voici quelques ressources que vous pouvez utiliser:
J'espère que cela vous aide à démarrer.
S'amuser!
Un peu tard mais récemment, j'ai découvert que MySql 5.7 avait un plugin http via lequel l'utilisateur peut se connecter directement à mysql maintenant.
Recherchez le client HTTP pour mysql 5.7
La réponse simple est: non.
JavaScript est un langage côté client qui s'exécute dans le navigateur ( nonobstant node.js ) et MySQL est une technologie côté serveur qui s'exécute sur le serveur.
Cela signifie que vous utilisez généralement un langage côté serveur comme ASP.NET ou PHP pour vous connecter à la base de données.
OUI? Jetez un œil à un météore. Liens:
http://meteor.com/screencast et http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
Je ne comprends pas comment cela se fait. Mais Nettuts + a mis cette chose dans la section javascript-ajax, peut-être que la magie se produit.
Il montre également un moyen de se connecter et d'insérer à MongoDB avec JS, comme ceci:
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});
En fonction de votre environnement, vous pouvez utiliser Rhino pour ce faire, voir le site Web de Rhino . Cela vous donne accès à toutes les bibliothèques Java à partir de JavaScript.
Oui. Il existe un plugin HTTP pour MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Je suis juste en train de googler à ce sujet maintenant, ce qui m'a conduit à cette question de stackoverflow. Vous devriez pouvoir AJAX une base de données MySQL maintenant ou dans un proche avenir (ils prétendent qu'elle n'est pas prête pour la production).
En règle générale, vous avez besoin d'un langage de script côté serveur comme PHP pour vous connecter à MySQL, cependant, si vous ne faites qu'une maquette rapide, vous pouvez utiliser http://www.mysqljs.com pour vous connecter à MySQL à partir de Javascript en utilisant le code comme suit:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Il faut mentionner que ce n'est pas un moyen sécurisé d'accéder à MySql, et ne convient que pour les démos privées ou les scénarios où le code source n'est pas accessible par les utilisateurs finaux, comme dans les applications iOS Phonegap.
var strSrc = "http://mysqljs.com/sql.aspx?";
Oui, vous pouvez. Les connecteurs MySQL utilisent TCP pour la connexion, et dans JS, il existe une version légèrement modifiée du client TCP appelée Websocket. Mais vous ne pouvez pas vous connecter directement au serveur MySQL avec websocket. Vous aurez besoin d'un pont tiers entre websocket et mysql. Il reçoit une requête de websocket, l'envoie à mysql, le résultat de la réponse et le renvoie à JS.
Et voici mon exemple de pont écrit en C # avec la bibliothèque 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();
}
}
Côté JS:
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
Non.
Vous devez écrire un wrapper en PHP, puis exporter les données renvoyées (probablement sous Json). JAMAIS, obtenez de votre "_GET" le code SQL, car cela s'appelle une injection SQL (les personnes qui apprennent cela auront un contrôle total sur votre base de données).
Voici un exemple que j'ai écrit:
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;
}
Renseignez-vous sur les injections SQL s'il vous plaît.
Vous pouvez vous connecter à MySQL depuis Javascript via une applet JAVA. L'applet JAVA intégrerait le pilote JDBC pour MySQL qui vous permettra de vous connecter à MySQL.
N'oubliez pas que si vous souhaitez vous connecter à un serveur MySQL distant (autre que celui à partir duquel vous avez téléchargé l'applet), vous devrez demander aux utilisateurs d'accorder des autorisations étendues à l'applet. Par défaut, l'applet ne peut se connecter qu'au serveur à partir duquel elle a été téléchargée.
JavaScript ne peut pas se connecter directement à DB pour obtenir les données nécessaires, mais vous pouvez utiliser AJAX. Pour faire une requête AJAX facile au serveur, vous pouvez utiliser le framework jQuery JS http://jquery.com . Voici un petit exemple
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);
J'ai compris votre question, je pense que vous la confondez avec des langages comme dot.net et java où vous pouvez ouvrir une connexion DB dans votre code. Non, JavaScript ne peut pas se connecter directement à MySQL car JavaScript est un langage de script côté client (Exception Node.js). Vous avez besoin d'une couche intermédiaire comme l'API RESTful pour accéder aux données.
Vous pouvez ajouter une connexion mysql en utilisant un fichier PHP. Voici l'exemple de fichier 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?
.