【问题标题】:Write values from HTTP put to MySQL Database将值从 HTTP put 写入 MySQL 数据库
【发布时间】:2016-01-14 09:37:57
【问题描述】:

首先我是一个 DB/PHP 新手,所以在这里快速学习。我知道这对于新手来说可能看起来相当先进,但我在 Amazon AWS 上设置了所有基础设施(我以网络为生,所以这部分很容易!)。

基本上,我有一个 android 应用程序,它使我能够将收集的数据导出到外部源,包括 FTP、Dropbox 和 URL。我有 FTP 在 Amazon EC2 上工作,但这只是将数据转储到服务器上的文本文件中,这不是我需要的。我真正需要的是将数据直接放入数据库中,我希望我可以使用 URL 导出选项来完成...应用程序选项包括为 URL auth 添加用户名/密码,并且每个变量都由“ &",例如:

http://IP/log?firstname=%FIRST&lastname=%LAST

所以,这个问题真的是多管齐下的。

首先我需要将数据导入数据库。我希望通过将应用程序指向数据库来做到这一点,但我确信我需要一些编码来实现这一点,但我对此一无所知。

其次,我需要删除数据,所以我只输入 First name, last name 等信息,而不是所有其他的零碎信息。

如果有人能指出我正确的方向,那就太好了!

编辑

这些是我的 MySQL 表的字段:

    Timestamp VARCHAR(50),
    Battery VARCHAR(10),
    Temperature VARCHAR(10),
    Latitude VARCHAR(50),
     Longitude VARCHAR(50),
    Speed VARCHAR(50),
    Altitude VARCHAR(50),
    Satellites VARCHAR(50),
    Android_ID VARCHAR(50),
    Android_Serial VARCHAR(50)
);

【问题讨论】:

  • 你开始命名 PHP,然后就没有更多了。你为什么提到php?解决方案确实在php中是可能的。

标签: php android mysql amazon-web-services ftp


【解决方案1】:

以下是有关如何执行此操作的代码示例。

// If this is a put request
if ($_SERVER['REQUEST_METHOD'] == 'PUT') {
    // Change the db_hostname, db_user, db_pass and database
    // values to your own database settings
    $conn = mysqli_connect('db_hostname', 'db_user', 'db_pass', 'database');
    $firstName = isset($_REQUEST['firstname']) ? addslashes($_REQUEST['firstname']) : false;
    $lastName = isset($_REQUEST['lastname']) ? addslashes($_REQUEST['lastname']) : false;

    // If both values are given ...
    if (false !== $firstName && false !== $lastName) {
        // Define statement
        $stmt = "INSERT INTO names (firstname, lastname) VALUES ('".$firstName."', '".$lastName."')";

        // Execute query
        mysqli_query($conn, $stmt);
    }
}

创建一个名为 log.php 的新文件并将其放在您的网络服务器根目录中。

PUT 您的请求所需的网址:

http://IP/log.php?firstname=%FIRST&lastname=%LAST

希望这会有所帮助。

【讨论】:

  • 谢谢彼得。我确实对这段代码的实际放置位置有疑问?我假设我需要将它放入自己的文件中或将其添加到另一个 php 文件中?再次感谢。
  • @Adzza 答案已更新 - 如果您愿意分享您的数据库表,那么我可以调整查询以使用您的数据库。
  • 太棒了彼得。我仍在最终确定数据库表,但会在完成后报告,以便我们可以测试这个婴儿。再次非常感谢!
  • 嘿彼得这是我设置的:时间戳 VARCHAR(50)、电池 VARCHAR(10)、温度 VARCHAR(10)、纬度 VARCHAR(50)、经度 VARCHAR(50)、速度 VARCHAR( 50), 海拔 VARCHAR(50), 卫星 VARCHAR(50), Android_ID VARCHAR(50), Android_Serial VARCHAR(50));
  • @Adzza 缺少表名 - 旁注:下次,尝试通过编辑您的问题来添加其他信息。
猜你喜欢
  • 2013-07-22
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 1970-01-01
相关资源
最近更新 更多