我能在前端Javascript中运行SQL查询吗?

12

我想在一个 .JS 文件中运行 SQL 查询。我尝试添加一些 PHP 代码,但当然没有起作用。

我想运行这个 SQL 查询: SELECT price FROM list WHERE q=1。我想在图表中显示价格。有谁知道我如何在 .JS 文件中运行这个 SQL 查询,以便我可以从数据库中获取商品价格?

我正在使用以下 JavaScript 代码:

 /* Morris.js Charts */
  // Sales chart
  var area = new Morris.Area({
    element: 'revenue-chart',
    resize: true,
    data: [
      {y: '2016 Q1', item1: 5000, item2: 4460},
      {y: '2016 Q2', item1: 8432, item2: 5713}
    ],
    xkey: 'y',
    ykeys: ['item1', 'item2'],
    labels: ['Item 1', 'Item 2'],
    lineColors: ['#a0d0e0', '#3c8dbc'],
    hideHover: 'auto'
  });
  var line = new Morris.Line({
    element: 'line-chart',
    resize: true,
    data: [
      {y: '2015 Q4', item1: 0},
      {y: '2016 Q1', item1: 5000},
      {y: '2016 Q2', item1: 8432}
    ],
    xkey: 'y',
    ykeys: ['item1'],
    labels: ['Item 1'],
    lineColors: ['#efefef'],
    lineWidth: 2,
    hideHover: 'auto',
    gridTextColor: "#fff",
    gridStrokeWidth: 0.4,
    pointSize: 4,
    pointStrokeColors: ["#efefef"],
    gridLineColor: "#efefef",
    gridTextFamily: "Open Sans",
    gridTextSize: 10
  });

1
可能是Can JavaScript connect with MySQL?的重复问题。 - Elzo Valugi
5个回答

6
你不能使用JavaScript直接执行查询,因为JavaScript无法直接连接到数据库,但是你可以使用AJAX。使用这种技术,你可以向一个包含可执行查询的代码的PHP(或其他服务器端语言)页面发送请求,以获取该查询的结果。
你可以在这里找到有关客户端服务器的一些信息:

https://spin.atomicobject.com/2015/04/06/web-app-client-side-server-side/

http://www.codeconquest.com/website/client-side-vs-server-side/

您可以在这里找到许多关于Ajax的有用信息:

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

甚至可以使用jQuery来管理Ajax调用: http://api.jquery.com/jquery.ajax/

编辑 您可以使用服务器端JavaScript访问数据库,在这里 您可以找到一篇关于MySql Cluster的好文章。 简而言之:

MySQL Cluster JavaScript驱动程序适用于Node.js,正如其名称所示-它是一个连接器,可以直接从您的JavaScript代码中调用以读取和写入数据。由于它直接访问数据节点,因此不需要通过MySQL服务器传递并将JavaScript代码/对象转换为SQL操作,因此没有额外的延迟。如果出于某种原因,您希望它通过MySQL服务器(例如,如果您正在InnoDB中存储表),则可以进行配置。

5

在客户端JS中无法直接连接到Mysql,只能使用服务器端JS(例如node)进行连接。它可以像PHP一样使用PDO或mysqli扩展连接,并运行查询,然后将信息传递给客户端JS。


3
你不能直接使用JavaScript连接到MySQL,但是你可以在JavaScript中像这样输出你的PHP变量:
 var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
  {y: '2016 Q1', item1: <?php echo $price ?>, item2: <?php echo $price ?>},
  {y: '2016 Q2', item1: 8432, item2: 5713}
]

您可以在PHP脚本中包含整个JavaScript代码。
执行时,将会替换为以下内容。
{y: '2016 Q1', item1: 12054, item2: 65242},

2

在JS之外执行查询并将价格传递到javascript中。

例如:

$res_price = $conn -> query("SELECT price FROM list WHERE q=1");
$row_price = mysqli_fetch_assoc($res_price);

echo $row_price['price'];

现在在Javascript中添加“喜欢”功能,
<?php echo $row_price['price']; ?>

如果您想添加多个价格,可以通过数组来管理,并制作价格数组并将其传递到js中。

0

MyServerless 可以直接在 js 中编写 Java 和 SQL,如下所示:

import * as my from "@/myserverless/myserverless.js"

my.$qryString(`#AdminRole select * from user where user_id=?`, 123);

在 JS 中编写 SQL 不安全,但对于开发阶段来说是可以的,诀窍是在部署之前将 SQL 从前端提取到后端。


目前你的回答不太清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何编写良好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接