JavaScript可以连接MySQL吗?如果可以,怎么做?
JavaScript可以连接MySQL吗?如果可以,怎么做?
客户端JavaScript不能直接访问MySQL,需要某种桥梁。但是上面加粗的说法JavaScript只是一个客户端语言是不正确的 - JavaScript可以在客户端和服务器端运行,例如Node.js.
Node.js可以通过类似https://github.com/sidorares/node-mysql2的东西来访问MySQL。
您还可以使用Socket.IO开发一些内容。
您是否想询问客户端JS应用程序是否可以访问MySQL?我不确定是否存在此类库,但这是可能的。
编辑:自撰写以来,我们现在拥有MySQL Cluster:
Node.js的MySQL Cluster JavaScript驱动程序正是其名称所示-它是一个连接器,可以直接从您的JavaScript代码中调用以读取和写入您的数据。由于它直接访问数据节点,因此没有通过MySQL Server传递的额外延迟,并且需要从JavaScript代码/对象转换为SQL操作。如果出于某种原因,您希望它通过MySQL Server(例如,如果您将表存储在InnoDB中),则可以进行配置。
JSDB提供了与数据库交互的JS接口。
怀旧情感留下的旧回答
NOW
据我了解,如果我理解问题并且没有错误,它涉及仅在客户端使用JavaScript的经典服务器模型。在这种经典模型中,使用LAMP服务器(Linux,Apache,MySQL,PHP),与数据库接触的语言是PHP,因此要请求数据库数据,您需要编写PHP脚本并将返回的数据echo到客户端。基本上,根据物理机器分配语言如下:
这符合MVC模型(Model,View,Controller),其中我们具有以下功能:
我希望它能帮助你开始。
玩得开心!
不,JavaScript 不能直接连接 MySQL。但你可以将 JS 与 PHP 混合使用来实现。
JavaScript 是一种客户端语言,而你的 MySQL 数据库将在服务器上运行。
有点晚了,但最近我发现 MySql 5.7 通过 http 插件让用户可以直接连接到 mysql。
寻找 Mysql 5.7 的 Http 客户端。
我认为你需要加入类似PHP这样的东西来完成这个方程式。PHP与数据库交互,然后你可以使用Javascript进行AJAX调用。
简单的答案是:不行。
JavaScript 是一种在浏览器中运行的客户端语言(除 node.js 外),而 MySQL 是一种在服务器上运行的服务器端技术。
这意味着你通常需要使用像 ASP.NET 或 PHP 这样的服务器端语言来连接数据库。
你好?看一下Meteor。链接如下:
http://meteor.com/screencast 和 http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/
我不明白它是如何实现的。但Nettuts+将此内容放在了javascript-ajax部分,也许魔法发生了。
它还展示了一些使用JS连接和插入到MongoDB的方法,像这样:
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});
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();
// 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);