JavaScript可以连接MySQL吗?

JavaScript可以连接MySQL吗? 如果是这样,怎么样?

不,JavaScript不能直接连接到MySQL。 但是,你可以混合使用JS和PHP来做到这一点。

JavaScript是一种客户端语言,您的MySQL数据库将在服务器上运行

如果没有某种桥接,客户端JavaScript不能访问MySQL。 但是,上面的粗体语句JavaScript仅仅是客户端语言是不正确的 – 与Node.js一样,JavaScript可以运行在客户端和服务器端。

Node.js可以通过像https://github.com/sidorares/nodejs-mysql-native

你也可以用Socket.IO开发一些东西

你是否想问一个客户端的JS应用程序是否可以访问MySQL? 我不确定这样的图书馆是否存在,但它们是可能的。

编辑 :自写以来,我们现在有MySQL集群 :

Node.js的MySQL集群JavaScript驱动程序听起来就像它是一个连接器,它可以直接从您的JavaScript代码中调用来读写数据。 由于它直接访问数据节点,因此不需要经过MySQL服务器的额外延迟,并且需要从JavaScript代码//对象转换为SQL操作。 如果由于某种原因,你宁愿它通过一个MySQL服务器(例如,如果你在InnoDB中存储表),那么可以configuration。

然后

正如我理解的问题,并纠正我,如果我错了,它是指只有在客户端JavaScript的经典服务器模型。 在这个典型的模型中,使用LAMP服务器(Linux,Apache,MySQL,PHP)与数据库联系的语言是PHP,所以要向数据库请求数据,您需要编写PHP脚本并将返回的数据回显给客户端。 基本上,根据物理机器的语言分布是:

  1. 服务器端: PHP和MySQL。
  2. 客户端: HTML / CSS和JavaScript。

这响应了一个MVC模型(模型,视图,控制器),我们有以下function:

  1. 模型:模型是处理数据的东西,在这种情况下,处理variables或访问数据的PHP脚本,在这种情况下,在我们的MySQL数据库中,并将其作为JSON数据发送到客户端。
  2. 观点:我们所看到的观点应该完全独立于模型。 它只需要显示模型中包含的数据,但不应该有相关的数据。 在这种情况下,视图使用HTML和CSS。 HTML创build视图的基本结构,以及CSS给这个基本结构的形状。
  3. 控制器:控制器是我们的模型和我们的观点之间的接口。 在这种情况下,所使用的语言是JavaScript,它将模型发送给我们的数据作为JSON包放入提供HTML结构的容器中。 控制器与模型交互的方式是使用AJAX 。 我们使用GETPOST方法在服务器端调用PHP脚本,并从服务器捕获返回的数据。

对于控制器,我们有非常有趣的工具,如jQuery ,作为控制HTML结构的“低级”库,然后是更高级别的Knockout.js ,允许我们创build连接不同DOM元素的观察者当事件发生时更新它们。 Google也有类似的Angular.js ,但似乎是一个完整的环境。 为了帮助你select,这里有两个优秀的分析工具: Knockout与Angular.js , Knockout.js与Angular.js 。 我还在读书。 希望他们帮助你。

现在

在基于Node.js的现代服务器中,我们使用JavaScript来处理所有事情。 Node.js是一个JavaScript环境,其中包含许多可与Google V8,Chrome JavaScript引擎配合使用的库。 我们使用这个新服务器的方式是:

  1. Node.js和Express :构build服务器的主框架。 我们可以使用几行代码创build一个服务器,甚至可以使用Express来快速创build服务器。 使用Node.js和Express,我们将pipe理从客户端到服务器的请求,并用适当的页面回答它们。
  2. Jade :为了创build页面,我们使用了模板语言,在这种情况下,Jade允许我们在编写HTML页面时编写网页,但有区别(需要一点时间,但很容易学习)。 然后,在服务器的代码中回答客户端请求,我们只需要将Jade代码渲染成“真实的”HTML代码。
  3. 手写笔 :类似于Jade,但用于CSS。 在这种情况下,我们使用中间件function将手写笔文件转换为我们的页面的真正的CSS文件。

然后,我们有很多可以使用NPM (Node.js包pipe理器)安装的包,并直接在我们的Node.js服务器中直接使用它们(对于那些想学习Node.js的人来说,试试这个初学者教程概述)。 在这些软件包中,你可以使用其中一些来访问数据库。 使用这个你可以在服务器端使用JavaScript访问我的SQL数据库。

但是如果你要使用Node.js,最好的办法是使用基于JSON文件的新的NoSQL数据库,比如MongoDB 。 它并不像MySQL那样存储表格,而是将数据存储在JSON结构中,这样就可以在每个结构中放入不同的数据,如长数字向量,而不是为最大的表格创build巨大的表格。

我希望这个简单的解释对你有用,如果你想了解更多关于这个的信息,在这里你可以使用一些资源:

  • Egghead :这个网站有很多关于JavaScript及其环境的简短教程。 它值得一试。 并不时作出折扣。
  • Code School(代码学校) :通过一个免费且非常有趣的Chrome Developer工具来帮助您testing客户端。
  • Codecademy :有关HTML,CSS,JavaScript,jQuery和PHP的免费课程,您可以通过在线示例进行学习。
  • 10gen教育 :在不同语言的教程中,您需要了解有关MongoDB的所有信息。
  • W3School :这个有关于这一切的教程,你可以用它作为参考地点,因为它有很多简短的代码示例真的很有用。
  • Udacity :一个有关不同主题的免费video课程的地方,有关于Web开发的一些有趣的video课程,以及我的首选WebGL 3DgraphicsJavaScript课程。

UPDATE!

现在有一个Node服务器,如果你想和MySQL数据库通信,你可以使用一个名为mysql的库。 您可以像使用PHP一样创build查询,也可以使用我创build的API生成器来尝试,您可以使用NPM进行下载。 它有一个向导,允许你select你想要使用的数据库等等。

我希望它能帮助你开始。

玩的开心!

我认为你需要在PHP中join类似PHP的东西。 PHP与数据库交互,然后你可以使用JavaScript进行AJAX调用。

简单的答案是:不。

JavaScript是在浏览器中运行的客户端语言( node.js ),而MySQL是服务器端运行的服务器端技术。

这意味着您通常使用服务器端语言(如ASP.NET或PHP)连接到数据库。

有点迟了,但最近我发现MySql 5.7通过http插件通过哪个用户可以直接连接到mysql。

findMySQL 5.7的Http客户端

是? 看看meteor。 链接:

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

我不明白它是如何完成的。 但是Nettuts +把这个东西放在javascript-ajax部分,也许会发生魔法。

它还显示了一些连接和插入到与MongoDB的JS,如下所示:

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

是。 有一个MySQL的HTTP插件。

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

我只是现在就使用Google,这导致我这个stackoverflow问题。 你现在应该可以或者在不久的将来能够AJAX一个MySQL数据库(他们声称它还没有准备好生产)。

根据您的环境,您可以使用Rhino来做到这一点,请参阅Rhino网站 。 这使您可以从JavaScript内部访问所有Java库。

没有。

你需要在PHP中编写一个包装器,然后导出返回的数据(可能是Json)。 永远不要从你的“_GET”获取SQL代码,因为这被称为SQL注入(学习这个的人将完全控制你的数据库)。

这是我写的一个例子:

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

请学习SQL注入。

您可以通过JAVA小程序从Javascript连接到MySQL。 JAVA小应用程序将embeddedMySQL的JDBC驱动程序,这将允许您连接到MySQL。

请记住,如果要连接到远程MySQL服务器(而不是从applet下载的那个服务器),则需要请求用户授予对applet的扩展权限。 默认情况下,小程序只能连接到他们从下载的服务器。

您可以将AJAX请求发送给MySQL的某些服务器端REST封装器,例如DBSlayer , PhpRestSQL或AlsoSQL (用于Drizzle ,MySQL的一个分支)。

JavaScript不能直接连接到数据库来获取所需的数据,但可以使用AJAX。 为了使服务器的AJAX请求容易,可以使用jQuery JS框架http://jquery.com 。 这是一个小例子

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

如果你没有lockingMySQL,你可以切换到PostgreSQL。 它支持数据库内的JavaScript程序(PL / V8)。 这是非常快速和强大的。 结帐这个职位 。

我明白你的问题,我认为你是混乱的语言,如dot.net和Java,你可以在你的代码中打开数据库连接。 不,JavaScript不能直接连接到MySQL,因为JavaScript是客户端脚本语言(Exception Node.js)。您需要像RESTful API这样的中间层来访问数据。

通常情况下,您需要像PHP这样的服务器端脚本语言来连接到MySQL,但是,如果您只是快速进行模型制作,那么您可以使用http://www.mysqljs.com从Javascript连接到MySQL,使用代码如下:;

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

必须指出的是,这不是一种访问MySql的安全方式,只适用于私有的演示,或者源代码不能被最终用户访问的场景,比如在Phonegap iOS应用程序中。

是的你可以。 MySQL连接器使用TCP进行连接,而在JS中有一个名为Websocket的TCP客户端的小修改版本。 但是你不能用websocket直接连接到MySQL服务器。 websocket和mysql之间需要一些第三方的桥梁。 它接收来自websocket的查询,将其发送到mysql,响应结果并重新发送给JS。

这是我用C#编写的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(); } } 

JS方:

 var ws = new WebSocket("ws://localhost/"); ws.send("server=localhost;user=root;database=mydb;"); ws.send("select * from users"); 

你可以使用PHP文件添加mysql连接。 下面是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); ?> }