JavaScript pode se conectar com o MySQL?

JavaScript pode se conectar com o MySQL? Se sim, como?

Não, o JavaScript não pode se conectar diretamente ao MySQL. Mas você pode misturar JS com PHP para fazer isso.

JavaScript é uma linguagem do lado do cliente e seu database MySQL será executado em um servidor

O JavaScript do lado do cliente não pode acessar o MySQL sem algum tipo de ponte. Mas as declarações em negrito acima, de que o JavaScript é apenas uma linguagem do lado do cliente, estão incorretas – o JavaScript pode ser executado no lado do cliente e no lado do servidor, como no Node.js.

O Node.js pode acessar o MySQL através de algo como https://github.com/sidorares/node-mysql2

Você também pode desenvolver algo usando o Socket.IO

Você queria perguntar se um aplicativo JS do lado do cliente pode acessar o MySQL? Não tenho certeza se tais bibliotecas existem, mas são possíveis.

EDIT : Desde a escrita, agora temos o MySQL Cluster :

O MySQL Cluster JavaScript Driver para Node.js é exatamente o que parece – é um conector que pode ser chamado diretamente do seu código JavaScript para ler e gravar seus dados. À medida que acessa os nós de dados diretamente, não há latência extra ao passar por um servidor MySQL e precisa converter objects do código JavaScript // em operações SQL. Se por algum motivo, você preferir que ele passe por um servidor MySQL (por exemplo, se você está armazenando tabelas no InnoDB), então isso pode ser configurado.

ENTÃO

Pelo que entendi a pergunta e corrija-me se estou errado, refere-se ao modelo de servidor clássico com JavaScript apenas no lado do cliente. Neste modelo clássico, com servidores LAMP (Linux, Apache, MySQL, PHP) a linguagem em contato com o database é PHP, então para solicitar dados ao database você precisa escrever scripts PHP e fazer eco dos dados retornados ao cliente. Basicamente, a distribuição das linguagens de acordo com as máquinas físicas é:

  1. Lado do servidor: PHP e MySQL.
  2. Lado do cliente: HTML / CSS e JavaScript.

Isso responde a um modelo MVC (Model, View, Controller), onde temos a seguinte funcionalidade:

  1. MODELO: O modelo é o que lida com os dados, neste caso, os scripts PHP que gerenciam variables ​​ou que acessam dados armazenados, neste caso em nosso database MySQL e os enviam como dados JSON para o cliente.
  2. VIEW: A visão é o que vemos e deve ser completamente independente do modelo. Só precisa mostrar os dados contidos no modelo, mas não deve ter dados relevantes sobre ele. Nesse caso, a exibição usa HTML e CSS. HTML para criar a estrutura básica da visão e CSS para dar forma a essa estrutura básica.
  3. CONTROLADOR: O controlador é a interface entre o nosso modelo e a nossa visão. Nesse caso, a linguagem usada é JavaScript e pega os dados que o modelo nos envia como um pacote JSON e os coloca dentro dos contêineres que oferecem a estrutura HTML. A maneira como o controlador interage com o modelo está usando o AJAX . Usamos os methods GET e POST para chamar scripts PHP no lado do servidor e capturar os dados retornados do servidor.

Para o controlador, temos ferramentas realmente interessantes como jQuery , como biblioteca de “baixo nível” para controlar a estrutura HTML (DOM), e novas, mais de alto nível como Knockout.js, que nos permitem criar observadores que conectam diferentes elementos DOM. atualizá-los quando ocorrerem events. Há também o Angular.js do Google que funciona de maneira semelhante, mas parece ser um ambiente completo. Para ajudá-lo a escolher entre o, aqui há duas excelentes análises das duas ferramentas: Knockout vs. Angular.js e Knockout.js vs. Angular.js . Eu ainda estou lendo. Espero que eles te ajudem.

AGORA

Nos servidores modernos baseados em Node.js, usamos JavaScript para tudo. O Node.js é um ambiente JavaScript com muitas bibliotecas que funcionam com o Google V8, o mecanismo JavaScript do Google Chrome. A maneira como trabalhamos com esses novos servidores é:

  1. Node.js e Express : o quadro principal onde o servidor é construído. Podemos criar um servidor com algumas linhas de código ou até mesmo usar bibliotecas como o Express para tornar ainda mais fácil criar o servidor. Com o Node.js e o Express, gerenciaremos as petições para o servidor dos clientes e as responderemos com as páginas apropriadas.
  2. Jade : Para criar as páginas, usamos uma linguagem de templates, neste caso, Jade, que nos permite escrever páginas web enquanto escrevíamos HTML, mas com diferenças (demora um pouco, mas é fácil de aprender). Então, no código do servidor para responder as petições do cliente, precisamos apenas renderizar o código Jade em código HTML “real”.
  3. Stylus : Similar ao Jade, mas para o css. Neste caso, usamos uma function de middleware para converter o arquivo da caneta em um arquivo css real para a nossa página.

Então nós temos muitos pacotes que podemos instalar usando o NPM (gerenciador de pacotes Node.js) e usá-los diretamente em nosso servidor Node.js apenas requerendo (para aqueles que querem aprender Node.js, tente este tutorial para iniciantes para uma visão geral). E entre esses pacotes, você tem alguns deles para acessar bancos de dados. Usando isso, você pode usar o JavaScript no lado do servidor para acessar os bancos de dados do My SQL.

Mas o melhor que você pode fazer se for trabalhar com o Node.js é usar os novos bancos de dados NoSQL, como o MongoDB , com base em arquivos JSON. Em vez de armazenar tabelas como o MySQL, ele armazena os dados em estruturas JSON, para que você possa colocar dados diferentes dentro de cada estrutura como vetores numéricos longos, criando tabelas enormes para o tamanho do maior.

Espero que esta breve explicação se torne útil para você, e se você quiser aprender mais sobre isso, aqui você tem alguns resources que você pode usar:

  • Egghead : Este site está repleto de excelentes tutoriais sobre JavaScript e seu ambiente. Vale a pena tentar. E os descontos fazem de vez em quando.
  • Escola de Códigos : com um curso gratuito e muito interessante sobre ferramentas do Google Chrome Developer para ajudar você a testar o lado do cliente.
  • Codecademy : Com cursos gratuitos sobre HTML, CSS, JavaScript, jQuery e PHP que você pode seguir com exemplos online.
  • 10gen Education : Com tudo o que você precisa saber sobre o MongoDB em tutoriais para diferentes idiomas.
  • W3Schools : Este tem tutoriais sobre tudo isso e você pode usá-lo como um local de referência, porque ele tem muitos exemplos de código curto realmente úteis.
  • Udacity : Um lugar com cursos de vídeo gratuitos sobre diferentes assuntos, com um pouco interessante sobre desenvolvimento web e o meu preferido, um incrível curso WebGL para charts 3D com JavaScript.

ATUALIZAR!

Agora, com um servidor Node, se você quiser se comunicar com um database MySQL, você pode usar uma biblioteca chamada mysql . Você pode criar consultas como você fez com o PHP, e você pode tentar usando um gerador de API que eu criei, que você pode baixar usando o NPM. Tem um assistente que permite escolher quais bancos de dados você deseja usar, entre outras coisas.

Espero que ajude você a começar.

Diverta-se!

Eu acho que você precisaria adicionar algo como PHP na equação. PHP para interagir com o database e, em seguida, você poderia fazer chamadas AJAX com Javascript.

Pouco tarde, mas recentemente eu descobri que o MySql 5.7 tem o plugin http através do qual o usuário pode se conectar diretamente ao mysql agora.

Procure por Http Client para o mysql 5.7

Resposta simples é: não.

JavaScript é uma linguagem do lado do cliente que é executada no navegador (não obstante node.js ) e o MySQL é uma tecnologia do lado do servidor que é executada no servidor.

Isso significa que você normalmente usa uma linguagem do lado do servidor, como ASP.NET ou PHP, para se conectar ao database.

SIM? Dê uma olhada em um meteor. Links:

http://meteor.com/screencast e http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/

Eu não entendo como isso é feito. Mas o Nettuts + coloca essa coisa na seção javascript-ajax, talvez a mágica aconteça.

Ele também mostra uma maneira de se conectar e inserir no MongoDB com JS, assim:

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}); 

Dependendo do seu ambiente, você pode usar o Rhino para fazer isso, consulte o site da Rhino . Isso lhe dá access a todas as bibliotecas Java de dentro do JavaScript.

Sim. Existe um plugin HTTP para o MySQL.

http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/

Eu estou apenas pesquisando sobre isso agora, o que me levou a essa questão do stackoverflow. Você deve ser capaz de criar um database MySQL AJAX agora ou em um futuro próximo (eles afirmam que ele não está pronto para produção).

Você pode enviar solicitações AJAX para alguns wrappers RESTful do lado do servidor para MySQL, como DBSlayer , PhpRestSQL ou AlsoSQL (para Drizzle , um fork do MySQL).

Não.

Você precisa escrever um wrapper em PHP e exportar os dados retornados (provavelmente como Json). NUNCA, obtenha do seu “_GET” o código SQL, pois isso é chamado de injeção SQL (as pessoas que aprenderem isso terão controle total sobre seu database).

Este é um exemplo que eu escrevi:

 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; } 

Aprenda sobre injeções de SQL, por favor.

Você pode se conectar ao MySQL de Javascript através de um applet JAVA. O applet JAVA embutiria o driver JDBC para o MySQL que permitirá que você se conecte ao MySQL.

Lembre-se de que, se você deseja se conectar a um servidor MySQL remoto (diferente daquele do qual baixou o applet), será necessário solicitar que os usuários concedam permissions estendidas para o applet. Por padrão, o applet só pode se conectar ao servidor do qual eles são baixados.

JavaScript não pode se conectar diretamente ao database para obter dados necessários, mas você pode usar o AJAX. Para facilitar a solicitação do AJAX ao servidor, você pode usar o jQuery JS framework http://jquery.com . Aqui está um pequeno exemplo

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); 

Se você não está bloqueado no MySQL, você pode mudar para o PostgreSQL. Suporta procedimentos JavaScript (PL / V8) dentro do database. É muito rápido e poderoso. Finalize este post .

Normalmente, você precisa de uma linguagem de script do lado do servidor como o PHP para se conectar ao MySQL, no entanto, se você está apenas fazendo um mockup rápido, então você pode usar http://www.mysqljs.com para se conectar ao MySQL a partir do Javascript usando o código segue:

 MySql.Execute( "mysql.yourhost.com", "username", "password", "database", "select * from Users", function (data) { console.log(data) }); 

É preciso mencionar que essa não é uma maneira segura de acessar o MySql e é adequada apenas para demonstrações privadas ou cenários em que o código-fonte não pode ser acessado por usuários finais, como em aplicativos iOS do Phonegap.

Eu entendi sua pergunta, eu acho que você está confundindo com linguagens como o dot.net e o java, onde você pode abrir a conexão do database dentro do seu código. Não, o JavaScript não pode se conectar diretamente ao MySQL, pois o JavaScript é uma linguagem de script do lado do cliente (Exception Node.js). Você precisa de uma camada intermediária como a RESTful API para acessar os dados.

Sim você pode. Os conectores MySQL usam o TCP para conexão e, no JS, há uma versão pouco modificada do cliente TCP, chamada Websocket. Mas você não pode se conectar diretamente ao servidor MySQL com websocket. Você precisará de uma ponte de terceiros entre o websocket e o mysql. Recebe a consulta do websocket, envia-a ao mysql, resultado da resposta e reenvia a JS.

E esta é a minha ponte de exemplo escrita em C # com biblioteca afiada websocket:

 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"); 

Você pode adicionar conexão mysql usando o arquivo PHP. Abaixo está o exemplo do arquivo PHP.

   Header of Table name "; while($row = mysql_fetch_array($result)) { echo ""; echo "" . $row['(database_column_name)'] . ""; echo "" . $row['database_column_name'] . ""; echo ""; } echo ""; mysql_close($con); ?> }