JavaScript peut-il se connecter avec MySQL? Si c'est le cas, comment?
Non, JavaScript ne peut pas se connecter directement à MySQL. Mais vous pouvez mélanger JS avec PHP pour le faire.
JavaScript est un langage côté client et votre base de données MySQL va s'exécuter sur un serveur.
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 est 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 pourriez aussi développer quelque chose en utilisant Socket.IO
Voulez-vous dire si une application JS côté client peut accéder à MySQL? Je ne suis pas sûr que de telles bibliothèques existent, mais elles sont possibles.
EDIT: Depuis l'écriture, nous avons maintenant MySQL Cluster :
Le pilote JavaScript de MySQL Cluster pour Node.js est exactement ce à quoi il ressemble - 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’ya pas de temps de latence supplémentaire pour passer par un serveur MySQL et il est nécessaire de convertir le code JavaScript // objets en opérations SQL. Si, pour une raison quelconque, vous préférez que cela passe par un serveur MySQL (par exemple, si vous stockez des tables dans InnoDB), vous pouvez le configurer.
JSDB offre une interface JS aux DB.
Un ensemble organisé de packages de base de données pour Node.js de sindresorhus.
PUIS
Si je comprends la question et me corrige si je me trompe, cela fait référence au modèle de serveur classique avec JavaScript uniquement du côté client. Dans ce modèle classique, avec les serveurs LAMP (Linux, Apache, MySQL, PHP), le langage en contact avec la base de données est PHP. Pour demander des données à la base de données, vous devez écrire des scripts PHP et echo les données renvoyées au client. En gros, la distribution des langues en fonction des machines physiques est la suivante:
Cela répond à un modèle MVC (Modèle, Vue, Contrôleur) où nous avons les fonctionnalités suivantes:
Pour le contrôleur, nous avons des outils vraiment intéressants comme jQuery , en tant que bibliothèque "de bas niveau" pour contrôler la structure HTML (DOM), puis de nouveaux, plus élevés en tant que Knockout.js qui nous permettent de créer des observateurs qui connectent différents éléments du DOM en les mettant à jour lorsque des événements se produisent. Il existe également un Angular.js } de Google qui fonctionne de la même manière, mais qui semble constituer un environnement complet. Pour vous aider à choisir parmi ceux-ci, voici deux excellentes analyses des deux outils: Knockout vs. Angular.js et Knockout.js vs. Angular.js . Je lis encore. J'espère qu'ils vous aideront.
À PRÉSENT
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 fonctionnant avec le moteur JavaScript de Google V8, Chrome. Notre façon de travailler avec ces nouveaux serveurs est la suivante:
Ensuite, nous avons beaucoup de paquets que nous pouvons installer à l’aide du NPM (gestionnaire de paquets Node.js) et les utiliser directement sur notre serveur Node.js qui en a juste besoin (pour ceux qui qui veulent apprendre Node.js, essayez ceci tutoriel débutant 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 allez travailler avec Node.js est d'utiliser les nouvelles bases de données NoSQL telles que MONGODB, basées sur des fichiers JSON. Au lieu de stocker des tables telles que MySQL, il stocke les données dans des structures JSON. Vous pouvez donc insérer différentes données dans chaque structure, telles que 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 souhaitez en savoir plus à ce sujet, voici quelques ressources que vous pouvez utiliser:
Actuellement, avec un serveur de nœud, si vous souhaitez communiquer avec une base de données MySQL, vous pouvez utiliser une bibliothèque appelée MYSQL. Vous pouvez créer des requêtes comme vous l'avez fait avec PHP, et vous pouvez l'essayer avec un GÉNÉRATEUR D'API que j'ai créé, que vous pouvez télécharger avec NPM. Il a un assistant qui vous permet de choisir les bases de données que vous voulez utiliser, entre autres choses.
J'espère que cela vous aide à commencer.
S'amuser!.
Have fun!
Je pense que vous auriez besoin d’ajouter quelque chose comme PHP dans l’équation. PHP pour interagir avec la base de données et vous pourrez ensuite faire des appels AJAX avec Javascript.
Peu de temps en retard, mais récemment, j'ai découvert que MySql 5.7 avait un plugin http permettant à l'utilisateur de 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 ( node.js nonobstant) et MySQL est une technologie côté serveur exécutée sur le serveur.
Cela signifie que vous utilisez généralement un langage côté serveur tel que ASP.NET ou PHP pour vous connecter à la base de données.
OUI? Regardez 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 c'est fait. Mais Nettuts + a mis cette chose dans la section javascript-ajax, peut-être que la magie opère.
Il montre également un moyen de se connecter et d’insérer dans 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});
Oui. Il existe un plugin HTTP pour MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Je suis en train de googler à ce sujet maintenant, ce qui m'a amené à cette question de stackoverflow. Vous devriez pouvoir AJAX créer une base de données MySQL maintenant ou dans un avenir rapproché (ils prétendent que ce n'est pas prêt pour la production).
En fonction de votre environnement, vous pouvez utiliser Rhino pour cela, voir Site Web Rhino . Cela vous donne accès à toutes les bibliothèques Java à partir de JavaScript.
Vous pouvez envoyer des requêtes AJAX à certains wrappers RESTful côté serveur pour MySQL, tels que DBSlayer , PhpRestSQL ou AlsoSQL (pour Drizzle , un fork de MySQL ).
En règle générale, vous avez besoin d’un langage de script côté serveur tel que PHP pour vous connecter à MySQL. Toutefois, si vous effectuez une maquette rapide, vous pouvez utiliser http://www.mysqljs.com to connectez-vous à MySQL à partir de Javascript en utilisant le code suivant:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Il convient de noter qu'il ne s'agit pas d'un moyen sécurisé d'accéder à MySql, mais que cela ne convient que pour des démos privées ou des scénarios dans lesquels le code source n'est pas accessible aux utilisateurs finaux, comme dans les applications Phonegap iOS.
Oui, vous pouvez. Les connecteurs MySQL utilisent TCP pour la connexion. Dans JS, il existe une petite version 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 de tierce partie 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");
JavaScript ne peut pas se connecter directement à la base de données pour obtenir les données nécessaires, mais vous pouvez utiliser AJAX. Pour faciliter la demande AJAX au serveur, vous pouvez utiliser jQuery JS framework 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();
$out['first'] = 'first value';
$out['second'] = 'second value';
echo json_encode($out);
Vous pouvez vous connecter à MySQL à partir de 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 sur lequel vous avez téléchargé l'applet), vous devrez demander aux utilisateurs d'accorder des autorisations étendues à l'applet. Par défaut, l'applet peut uniquement se connecter au serveur à partir duquel il est téléchargé.
Si vous n'êtes pas bloqué sur MySQL, vous pouvez passer à PostgreSQL. Il supporte les procédures JavaScript (PL/V8) dans la base de données. C'est très rapide et puissant. Commander ce post .
Non.
Vous devez écrire un wrapper en PHP, puis exporter les données renvoyées (probablement en Json). NE JAMAIS, obtenez de votre "_GET" le code SQL, car cela s’appelle une injection SQL (les personnes qui apprendront ceci auront le contrôle total de 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;
}
En savoir plus sur les injections SQL s'il vous plaît.