Php ';最简单的';方法在我的Android应用程序中的localhost上获取MySQL

Php ';最简单的';方法在我的Android应用程序中的localhost上获取MySQL,php,android,Php,Android,我已经成功地使用POST在我的网站上运行了一个PHP脚本,它允许电话应用程序向数据库(MySQL)添加一个新条目,并删除一个条目 下一步是我在过去几个小时里一直在苦苦挣扎的一步,那就是把DB的信息传到手机上 我想要一个方法,在启动活动并填充listview或其他东西时,最初只连接到DB,然后将所有条目都保存下来,然后我计划将信息复制到手机中的SQLite DB 我能找到的最简单的方法是什么? 我可以足智多谋,但我只需要知道我在寻找什么 通常,您需要创建服务器API:选择一些格式,以便在web服务

我已经成功地使用POST在我的网站上运行了一个PHP脚本,它允许电话应用程序向数据库(MySQL)添加一个新条目,并删除一个条目

下一步是我在过去几个小时里一直在苦苦挣扎的一步,那就是把DB的信息传到手机上

我想要一个方法,在启动活动并填充listview或其他东西时,最初只连接到DB,然后将所有条目都保存下来,然后我计划将信息复制到手机中的SQLite DB

我能找到的最简单的方法是什么?
我可以足智多谋,但我只需要知道我在寻找什么

通常,您需要创建服务器API:选择一些格式,以便在web服务和android应用程序之间进行对话。 然后您将始终需要从服务器请求一些数据,这些数据将以上述格式以某种形式的网络响应体返回给您。 接下来,您所需要的就是解析这些数据并填充到适配器或其他任何地方

请注意,网络操作可能需要相当长的时间,这取决于您的连接,因此,您不能等到它结束时才显示您的UI-您需要以异步方式执行此操作,并向用户提供正在检索数据的反馈

如今,在http post请求体中传递的json格式非常流行。看看这个

当然,您可以尝试直接连接到远程MySQL服务器。。在某些情况下,它确实是一个更简单的解决方案(您不需要编写服务器端api),但可能不那么容易访问,因为标准MySQL端口并不是在所有网络中都打开的。此外,您的API服务器可能会隐藏一些关于数据实际存储方式的实现细节,从而允许您从MySQL迁移到PostgreSQL,而不必为android应用程序感到痛苦

别忘了保护您的数据免受未经授权的访问

编辑


现在是2017年,现在最简单的选择是使用开源项目,该项目将为您的数据库提供rest api,例如,或者我个人不得不为iOS和Android设备开发以下rest api服务(基于Laravel框架,我称之为lRapi),效果非常好(应用程序使用的版本要复杂得多)

这里有很多模型和控制器供您开始使用。响应是JSON格式的,带有适当的标题。 我还需要添加一些文档,但在主示例视图中有一些文档,您可以通过设置虚拟主机并在浏览器中打开根页面来访问这些文档

Laravel是一个MVC PHP框架,很容易适应

这是一个避免做大部分工作的好方法,只需专注于实现您需要的其他内容。

您有很多选择

  • 通过HTTP(REST/SOAP/etc)进行更高级别的抽象,如前面提到的
  • HTTP作为纯文本/CSV数据的代理(无抽象)
  • 从android设备到MySQL的直接JDBC连接
  • 数据库数据导出/导入

  • 我猜您正在寻找选项3。那就是将远程数据库同步到本地(android上的SQlite),然后处理本地数据?在这种情况下,您只需要一个mysql客户端jar(JDBC驱动程序)进入你的应用程序,你就可以开始了。虽然有一些限制,比如评论中已经提到的塞巴斯蒂安·雷诺德。但是,这些问题可以解决,即使用MySQL的自定义配置或选项(2),可以以通用方式实现(写一次)

    是什么阻止您使用GET请求从PHP脚本中检索数据?请在本地缓存它们(SQLite或NoSQL替代方案)我不需要访问php脚本,我只需要从MySQL数据库中获取数据。没有办法直接连接到它,你是说我必须创建一个网页来检索数据,然后在手机上访问该脚本吗?我有点困惑……两件事。1.大多数移动运营商阻止对3306端口的访问。2。大多数MySQL服务器都会阻止不来自本地主机(或非常特定的服务器子集)的连接通过Web服务器。作为JSON的替代方案,如果符合要求,可以使用RESTful API。另外,一个小时内不能取消投票权……你可以用它在android应用程序中解析JSON。这听起来很完美,我只是将此应用程序作为一个概念,它可以通过wi-fi网络在本地主机上运行。我将谷歌JDBC,看看我的想法在我的技术水平范围内,谢谢!对不起,老兄,我真的找不到JDBC驱动程序,你能提供一个链接吗?你可以在这里下载驱动程序,解压文件并找到一个.jar,这就是要使用的驱动程序。一个连接的示例代码,如果你需要超过1小时,你仍然可以返回到(2)正如这里所描述的,它写得很好。