O JavaScript pode se conectar ao MySQL? Se sim, como?
O JavaScript pode se conectar ao MySQL? Se sim, como?
Respostas:
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 banco de dados 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 afirmaçõ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 por meio de algo como https://github.com/sidorares/node-mysql2
Você também pode desenvolver algo usando Socket.IO
Você quis dizer se um aplicativo JS do lado do cliente pode acessar o MySQL? Não tenho certeza se essas bibliotecas existem, mas são possíveis.
EDIT : Desde que escrevemos, agora temos cluster MySQL :
O MySQL Cluster JavaScript Driver para Node.js é exatamente o que parece - é um conector que pode ser chamado diretamente de seu código JavaScript para ler e gravar seus dados. Como ele acessa os nós de dados diretamente, não há latência extra ao passar por um servidor MySQL e precisa converter de objetos de código // JavaScript em operações SQL. Se, por algum motivo, você preferir que ele passe por um servidor MySQL (por exemplo, se estiver armazenando tabelas em InnoDB), então isso pode ser configurado.
JSDB oferece uma interface JS para bancos de dados.
Um conjunto curado de pacotes de banco de dados para Node.js de sindresorhus.
Se você deseja se conectar a um banco de dados MySQL usando JavaScript, pode usar Node.js e uma biblioteca chamada mysql . Você pode criar consultas e obter resultados como uma matriz de registros. Se você quiser tentar, pode usar meu gerador de projeto para criar um back-end e escolher o MySQL como o banco de dados a ser conectado. Em seguida, apenas exponha sua nova API REST ou terminal GraphQL à sua frente e comece a trabalhar com seu banco de dados MySQL.
ANTIGA RESPOSTA DEIXADA PELA NOSTALGIA
ENTÃO
Pelo que entendi a pergunta e corrijo-me se estiver errado, ela se refere 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 banco de dados era o PHP, então para solicitar dados ao banco de dados você precisa escrever scripts PHP e ecoar os dados de retorno para o cliente. Basicamente, a distribuição das linguagens de acordo com as máquinas físicas era:
Isso respondeu a um modelo MVC (Model, View, Controller) onde tínhamos a seguinte funcionalidade:
Para o controlador, temos ferramentas realmente interessantes como jQuery , como uma biblioteca de "baixo nível" para controlar a estrutura HTML (DOM), e então novas, mais de alto nível como Knockout.js que nos permitem criar observadores que conectam diferentes Elementos DOM atualizando-os quando os eventos ocorrem. Existe também o Angular.js do Google que funciona de maneira semelhante, mas parece ser um ambiente completo. Para ajudá-lo a escolher entre eles, aqui você tem duas análises excelentes das duas ferramentas: Knockout vs. Angular.js e Knockout.js vs. Angular.js . Eu ainda estou lendo. Espero que eles ajudem você.
AGORA
Em servidores modernos baseados em Node.js, usamos JavaScript para tudo. Node.js é um ambiente JavaScript com muitas bibliotecas que funcionam com Google V8, motor Chrome JavaScript. A maneira como trabalhamos com esses novos servidores é:
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 exigindo (para aqueles que desejam aprender Node.js, experimente 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 JavaScript no lado do servidor para acessar meus bancos de dados SQL.
Mas o melhor que você pode fazer se for trabalhar com Node.js é usar os novos bancos de dados NoSQL, como 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, em vez de criar tabelas enormes para o tamanho do maior.
Espero que esta breve explicação seja útil para você e, se quiser saber mais sobre isso, aqui estão alguns recursos que podem ser usados:
Espero que ajude você a começar.
Diverta-se!
Um pouco tarde, mas recentemente descobri que o MySql 5.7 tem um plug-in http através do qual o usuário pode se conectar diretamente ao mysql agora.
Procure Cliente Http para mysql 5.7
A resposta simples é: não.
JavaScript é uma linguagem do lado do cliente executada no navegador ( não obstante o node.js ) e o MySQL é uma tecnologia do lado do servidor executada no servidor.
Isso significa que você normalmente usa uma linguagem do lado do servidor como ASP.NET ou PHP para se conectar ao banco de dados.
SIM? Dê uma olhada em um meteoro. Links:
http://meteor.com/screencast e http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
Não entendo como isso é feito. Mas a Nettuts + colocou isso na seção javascript-ajax, talvez mágica aconteça.
Também mostra alguma maneira de conectar e inserir no MongoDB com JS, como este:
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 do Rhino . Isso lhe dá acesso a todas as bibliotecas Java de dentro do JavaScript.
Sim. Existe um plugin HTTP para MySQL.
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
Estou apenas pesquisando sobre isso agora, o que me levou a esta questão stackoverflow. Você deve ser capaz de usar AJAX em um banco de dados MySQL agora ou no futuro próximo (eles afirmam que não está pronto para produção).
Normalmente, você precisa de uma linguagem de script do lado do servidor, como PHP, para se conectar ao MySQL; no entanto, se você estiver apenas fazendo uma maquete rápida, poderá usar http://www.mysqljs.com para se conectar ao MySQL a partir de Javascript usando o código como segue:
MySql.Execute(
"mysql.yourhost.com",
"username",
"password",
"database",
"select * from Users",
function (data) {
console.log(data)
});
Deve-se mencionar que esta não é uma forma segura de acessar o MySql e só é adequada para demonstrações privadas ou cenários onde o código-fonte não pode ser acessado por usuários finais, como em aplicativos iOS Phonegap.
var strSrc = "http://mysqljs.com/sql.aspx?";
Sim você pode. Os conectores MySQL usam TCP para conexão, e em JS há uma pequena versão modificada do cliente TCP chamada Websocket. Mas você não pode se conectar diretamente ao servidor MySQL com websocket. Você precisará de alguma ponte de terceiros entre o websocket e o mysql. Recebe a consulta do websocket, envia para o mysql, responde o resultado e reenvia para JS.
E este é meu exemplo de bridge escrito em C # com biblioteca 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");
Não.
Você precisa escrever um wrapper em PHP e, em seguida, 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 o seu banco de dados).
Este é um exemplo que 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 a partir de Javascript por meio de um miniaplicativo JAVA. O miniaplicativo JAVA incorporaria o driver JDBC para MySQL que permitirá a conexão com o MySQL.
Lembre-se de que se quiser se conectar a um servidor MySQL remoto (diferente daquele de onde baixou o miniaplicativo), você precisará pedir aos usuários que concedam permissões estendidas ao miniaplicativo. Por padrão, o miniaplicativo só pode se conectar ao servidor de onde foram baixados.
JavaScript não pode se conectar diretamente ao banco de dados para obter os dados necessários, mas você pode usar AJAX. Para fazer uma solicitação AJAX fácil para o servidor, você pode usar o framework jQuery JS 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();
// 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);
Eu entendi sua pergunta, acho que você está confundindo com linguagens como dot.net e java, onde você pode abrir uma conexão DB 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 API RESTful para acessar os dados.
Você pode adicionar a conexão mysql usando o arquivo PHP. Abaixo está o exemplo de arquivo 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?
.