JavaScript可以与MySQL连接吗?如果是这样,怎么办?
JavaScript可以与MySQL连接吗?如果是这样,怎么办?
Answers:
不,JavaScript无法直接连接到MySQL。但是您可以将JS与PHP混合使用。
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服务器不会产生额外的延迟,并且无需将JavaScript代码//对象转换为SQL操作。如果出于某种原因,您希望它通过MySQL服务器(例如,如果您将表存储在InnoDB中),则可以对其进行配置。
如果要使用JavaScript连接到MySQL数据库,则可以使用Node.js和一个名为mysql的库。您可以创建查询,并以寄存器数组的形式获取结果。如果要尝试,可以使用我的项目生成器创建一个后端,然后选择MySQL作为要连接的数据库。然后,只需将新的REST API或GraphQL端点暴露在最前面,然后开始使用MySQL数据库即可。
NOSTALGIA的旧答案
然后
据我了解的问题,如果我错了,请纠正我,它指的是仅在客户端使用JavaScript的经典服务器模型。在这款经典机型,与LAMP服务器(Linux操作系统,Apache,MySQL和PHP)与数据库中的联系人的语言是PHP,所以请求数据,你需要编写PHP脚本和数据库呼应的将数据返回到客户端。基本上,根据物理机器分配的语言是:
这回答了我们具有以下功能的MVC模型(模型,视图,控制器):
对于控制器,我们有非常有趣的工具,例如jQuery,它是控制HTML结构(DOM)的“低级”库,而后还有Knockout.js等新的,更高级的库,可让我们创建连接不同对象的观察器。 DOM元素在事件发生时更新它们。Google 还提供了Angular.js,它的工作方式与此类似,但似乎是一个完整的环境。为了帮助您选择它们,这里对这两个工具进行了两个出色的分析:Knockout vs. Angular.js和Knockout.js vs. Angular.js。我还在看书。希望他们能帮助您。
现在
在基于Node.js的现代服务器中,我们对所有内容都使用JavaScript。Node.js是一个JavaScript环境,其中包含许多可与Google V8(Chrome JavaScript引擎)一起使用的库。我们使用这些新服务器的方式是:
然后,我们有很多软件包可以使用NPM(Node.js软件包管理器)安装,并直接在需要它的Node.js服务器中使用(对于那些想学习Node.js的人,请尝试此初学者教程)以获取概述)。在这些软件包中,您有一些可以访问数据库。使用此功能,您可以在服务器端使用JavaScript来访问My SQL数据库。
但是,如果要使用Node.js,最好的办法是使用基于JSON文件的新NoSQL数据库(如MongoDB)。它没有像MySQL那样存储表,而是将数据存储在JSON结构中,因此您可以在每个结构中放入不同的数据(例如长数值向量),而不是为最大的表创建大型表。
我希望这个简短的说明对您有用,如果您想了解更多有关此的信息,可以在这里使用一些资源:
我希望它可以帮助您开始。
玩得开心!
有点晚了,但最近我发现MySql 5.7通过http插件通过它,用户现在可以直接连接到mysql。
寻找mysql 5.7的Http Client
是?看看流星。链接:
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});
根据您的环境,您可以使用Rhino进行此操作,请参见Rhino网站。这使您可以从JavaScript内访问所有Java库。
是。有一个用于MySQL的HTTP插件。
http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/
我现在只是在搜索它,这使我想到了这个stackoverflow问题。您应该能够现在或在不久的将来使用AJAX MySQL数据库(他们声称它尚未准备好投入生产)。
通常,您需要像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应用程序中的场景。
var strSrc = "http://mysqljs.com/sql.aspx?";
是的你可以。MySQL连接器使用TCP进行连接,而在JS中,TCP客户端有一个小的修改版本,称为Websocket。但是您不能使用websocket直接连接到MySQL服务器。您将需要在websocket和mysql之间建立第三方桥梁。它从websocket接收查询,将其发送到mysql,响应结果并重新发送到JS。
这是我用websocket-sharp库用C#编写的示例桥:
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编写包装程序,然后导出返回的数据(可能是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注入。
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);
您可以使用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);
?> }
Can JavaScript connect with MySQL?
。