¿Puede JavaScript conectarse con MySQL? ¿Si es así, cómo?
¿Puede JavaScript conectarse con MySQL? ¿Si es así, cómo?
Respuestas:
No, JavaScript no puede conectarse directamente a MySQL. Pero puedes mezclar JS con PHP para hacerlo.
JavaScript es un lenguaje del lado del cliente y su base de datos MySQL se ejecutará en un servidor
El JavaScript del lado del cliente no puede acceder a MySQL sin algún tipo de puente. Pero las declaraciones en negrita anteriores de que JavaScript es solo un lenguaje del lado del cliente son incorrectas: JavaScript puede ejecutarse del lado del cliente y del lado del servidor, como con Node.js.
Node.js puede acceder a MySQL a través de algo como https://github.com/sidorares/node-mysql2
También puede desarrollar algo usando Socket.IO
¿Quería preguntar si una aplicación JS del lado del cliente puede acceder a MySQL? No estoy seguro de que existan tales bibliotecas, pero son posibles.
EDITAR : Desde que escribimos, ahora tenemos MySQL Cluster :
El controlador JavaScript de MySQL Cluster para Node.js es exactamente lo que parece: es un conector al que se puede llamar directamente desde su código JavaScript para leer y escribir sus datos. A medida que accede a los nodos de datos directamente, no hay latencia adicional al pasar a través de un servidor MySQL y es necesario convertir objetos de código JavaScript // en operaciones SQL. Si, por alguna razón, prefiere que pase a través de un servidor MySQL (por ejemplo, si está almacenando tablas en InnoDB), entonces puede configurarlo.
JSDB ofrece una interfaz JS para DB.
Un conjunto seleccionado de paquetes de base de datos para Node.js de sindresorhus.
Si desea conectarse a una base de datos MySQL usando JavaScript, puede usar Node.js y una biblioteca llamada mysql . Puede crear consultas y obtener resultados como una matriz de registros. Si quieres probarlo, puedes usar mi generador de proyectos para crear un backend y elegir MySQL como base de datos para conectarte. Luego, simplemente exponga su nueva API REST o punto final GraphQL al frente y comience a trabajar con su base de datos MySQL.
ANTIGUA RESPUESTA DEJADA POR NOSTALGIA
LUEGO
Como entiendo la pregunta y me corrijo si me equivoco, se refiere al modelo de servidor clásico con JavaScript solo en el lado del cliente. En este modelo clásico, con servidores LAMP (Linux, Apache, MySQL, PHP) el lenguaje en contacto con la base de datos era PHP, por lo que para solicitar datos a la base de datos es necesario escribir scripts PHP y hacer eco de los datos devueltos al cliente. Básicamente, la distribución de los lenguajes según máquinas físicas fue:
Esto respondió a un modelo MVC (Modelo, Vista, Controlador) donde teníamos la siguiente funcionalidad:
Para el controlador, tenemos herramientas realmente interesantes como jQuery , como biblioteca de "bajo nivel" para controlar la estructura HTML (DOM), y luego otras nuevas y de más alto nivel como Knockout.js que nos permiten crear observadores que conectan diferentes Elementos DOM actualizándolos cuando ocurren eventos. También existe Angular.js de Google que funciona de manera similar, pero parece ser un entorno completo. Para ayudarte a elegir entre ellos, aquí tienes dos análisis excelentes de las dos herramientas: Knockout vs. Angular.js y Knockout.js vs. Angular.js . Sigo leyendo. Espero que te ayuden.
AHORA
En los servidores modernos basados en Node.js, usamos JavaScript para todo. Node.js es un entorno de JavaScript con muchas bibliotecas que funcionan con Google V8, motor de JavaScript de Chrome. La forma en que trabajamos con estos nuevos servidores es:
Luego tenemos muchos paquetes que podemos instalar usando el NPM (administrador de paquetes de Node.js) y usarlos directamente en nuestro servidor Node.js solo requiriéndolo (para aquellos de ustedes que quieran aprender Node.js, pruebe este tutorial para principiantes para una descripción general). Y entre estos paquetes, tienes algunos para acceder a bases de datos. Con esto, puede usar JavaScript en el lado del servidor para acceder a las bases de datos My SQL.
Pero lo mejor que puede hacer si va a trabajar con Node.js es usar las nuevas bases de datos NoSQL como MongoDB , basadas en archivos JSON. En lugar de almacenar tablas como MySQL, almacena los datos en estructuras JSON, por lo que puede colocar diferentes datos dentro de cada estructura como vectores numéricos largos en lugar de crear tablas enormes para el tamaño de la más grande.
Espero que esta breve explicación te sea de utilidad, y si quieres conocer más sobre esto, aquí tienes algunos recursos que puedes utilizar:
Espero que te ayude a empezar.
¡Que te diviertas!
Un poco tarde, pero recientemente descubrí que MySql 5.7 obtuvo el complemento http a través del cual el usuario puede conectarse directamente a mysql ahora.
Busque el cliente Http para mysql 5.7
La respuesta simple es: no.
JavaScript es un lenguaje del lado del cliente que se ejecuta en el navegador (a pesar de node.js ) y MySQL es una tecnología del lado del servidor que se ejecuta en el servidor.
Eso significa que normalmente usa un lenguaje del lado del servidor como ASP.NET o PHP para conectarse a la base de datos.
¿SI? Eche un vistazo a un meteoro. Enlaces:
http://meteor.com/screencast y http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
No entiendo como se hace. Pero Nettuts + puso esto en la sección javascript-ajax, tal vez suceda magia.
También muestra alguna forma de conectarse e insertar a MongoDB con JS, así:
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});
Dependiendo de su entorno, puede utilizar Rhino para hacer esto, consulte el sitio web de Rhino . Esto le da acceso a todas las bibliotecas de Java desde dentro de JavaScript.
Si. Hay un complemento HTTP para MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Ahora solo estoy buscando en Google, lo que me llevó a esta pregunta sobre el flujo de pila. Debería poder AJAX una base de datos MySQL ahora o en un futuro cercano (afirman que no está lista para la producción).
Normalmente, necesita un lenguaje de scripting del lado del servidor como PHP para conectarse a MySQL, sin embargo, si solo está haciendo una maqueta rápida, puede usar http://www.mysqljs.com para conectarse a MySQL desde Javascript usando código como sigue:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Cabe mencionar que esta no es una forma segura de acceder a MySql y solo es adecuada para demostraciones privadas o escenarios en los que los usuarios finales no pueden acceder al código fuente, como en las aplicaciones de Phonegap para iOS.
var strSrc = "http://mysqljs.com/sql.aspx?";
Sí tu puedes. Los conectores MySQL usan TCP para la conexión, y en JS hay una pequeña versión modificada del cliente TCP llamada Websocket. Pero no puede conectarse directamente al servidor MySQL con websocket. Necesitará un puente de terceros entre websocket y mysql. Recibe la consulta de websocket, la envía a mysql, responde el resultado y la reenvía a JS.
Y este es mi puente de ejemplo escrito en C # con biblioteca de 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();
}
}
Lado JS:
var ws = new WebSocket("ws://localhost/");
ws.send("server=localhost;user=root;database=mydb;");
ws.send("select * from users");
No.
Debe escribir un contenedor en PHP y luego exportar los datos devueltos (probablemente como Json). NUNCA, obtenga de su "_GET" el código SQL, ya que esto se llama inyección SQL (las personas que aprendan esto tendrán control total sobre su base de datos).
Este es un ejemplo que escribí:
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;
}
Infórmese sobre las inyecciones SQL, por favor.
Puede conectarse a MySQL desde Javascript a través de un subprograma JAVA. El subprograma JAVA incrustaría el controlador JDBC para MySQL que le permitirá conectarse a MySQL.
Recuerde que si desea conectarse a un servidor MySQL remoto (que no sea del que descargó el subprograma), deberá solicitar a los usuarios que otorguen permisos extendidos al subprograma. De forma predeterminada, el subprograma solo puede conectarse al servidor desde el que se descargan.
Si no está bloqueado en MySQL, puede cambiar a PostgreSQL. Admite procedimientos de JavaScript (PL / V8) dentro de la base de datos. Es muy rápido y poderoso. Mira esta publicación .
JavaScript no puede conectarse directamente a la base de datos para obtener los datos necesarios, pero puede usar AJAX. Para facilitar la solicitud AJAX al servidor, puede usar jQuery JS framework http://jquery.com . Aquí hay un pequeño ejemplo
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);
Entendí su pregunta, creo que la está confundiendo con lenguajes como dot.net y java, donde puede abrir la conexión DB dentro de su código. No, JavaScript no puede conectarse directamente a MySQL ya que JavaScript es un lenguaje de scripting del lado del cliente (Exception Node.js). Necesita una capa intermedia como la API RESTful para acceder a los datos.
Puede agregar una conexión mysql usando un archivo PHP. A continuación se muestra el ejemplo de archivo 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?
.