【问题标题】:PHP Queries in Play Framework 1.3.xPlay Framework 1.3.x 中的 PHP 查询
【发布时间】:2015-07-08 11:23:31
【问题描述】:

我想知道我是否可以使用 PHP 从 MySQL 数据库中获取数据。部分代码可以在这里看到:

<?php
$servername = "localhost";
$username = "root";
$password = "pass";
$dbname = "name";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT aa, bb, cc FROM data";
$result = $conn->query($sql);
...
?>

这是放置在 Play Framework 文件夹“views”中的 HTML 文件中,并由控制器正确加载,但是当它加载时,它只是向我显示代码,就好像它是文本一样,而不是代码或操作应该这样做,所以它就像不承认它一样。我该如何解决?

【问题讨论】:

  • 你保存为.php文件了吗?
  • 使用像 Play 这样的 MVC 框架的重点是不要通过在也呈现 html 的东西中进行数据库调用来混合您的视图/模型逻辑。 Play 具有连接和执行数据库查询的功能。
  • 这是真的,先生,但是为了以“实时方式”绘制数据,获取更新数据(增加数据库数据)的方法是什么?

标签: php mysql playframework


【解决方案1】:

不,你不能在模板中使用 PHP,Play 根本不解析 PHP,实际上它甚至不知道有 PHP 之类的东西。

附:尝试在您的 Java 应用程序中重用 PHP 代码比仅使用 Java 学习有效方法要困难得多,请参阅类似帖子的答案(它是关于 MySQL 原始访问,而不是 PHP 集成),您可以在几分钟内重用:https://stackoverflow.com/a/31118795/1066240

正如 bjfletcher 提到的,您需要配置两个运行时才能在一台服务器上使用 Java 和 PHP,但我无论如何都不允许您在 Play 的模板中使用 PHP! 所以它没有更深的意义。

【讨论】:

  • 问题是我需要每隔“x”秒从“运行数据库”中获取数据来使用 Flot Charts 绘制它,这是一种“实时操作”。在 Play Framework 中实现此目的的最佳方法是什么?
  • 对不起,我不知道 Flot Charts,使用 Play,您可以轻松访问任何数据库,还有 MySQL(如其他答案中所指出),您还可以使用 Akka Scheduler(这是某种 cron 任务 来自 unix)
  • 我已成功访问 MySQL 数据库,但问题是“实时”从数据库中获取值。这意味着,数据库将是“动态的”并且每“x”秒更新一次,我需要更新这个数据库的值并将它们存储在数组中以绘制它们。关于最佳选择的任何想法?
【解决方案2】:

Play 不懂 PHP。

您需要两个运行时:

  1. 播放运行时
  2. PHP 运行时

并使用 HTTP 进行集成。例如,如果 PHP 代码在 http://localhost/products 上,则 Play 将向该 URL 发送一个 GET 请求以获取响应。 Play 然后可以使用这个响应来做任何你想做的事情。

例如:

def index() = Action {
    WS.get("http://localhost/products").get.map { resp =>
      Ok(views.html.index(resp.body))
    }
}

然后在您的视图模板中:

@(resp: String)

<h1>Products</h1>
@resp

【讨论】:

  • 那么我需要做什么才能从视图文件夹中的 html 文件中调用这个 php 代码?有什么方法可以使用这个 html 文件中的我的 php 代码吗?谢谢
  • 查看更新的答案以获取有关如何执行此操作的示例。
  • 所以这将访问 products.php 文件,然后 html 文件中的输出是什么?我不明白什么样的数据或结构代表您在答案中编写的最后一行代码。再次感谢您提前输入:)
  • Play 无法访问products.php - 你会在 HTML 页面中看到奇怪的 PHP 语法 :) 它需要先通过 PHP 运行时。
【解决方案3】:

最好的办法是完全用 php 编写。忘记使用臃肿的 playframework 并尝试找出将它们联系在一起所必须建立的所有连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多