我有一个应用程序,它使用一些PHP脚本来访问mysql数据库。 任何人都可以建议如何实现离线版本? 我知道在应用程序中创建一个SQLLite数据库并在Web服务器可用时填充它很容易吗?真?
当我想查询它时,是否可以使用预先存在的php?
来实现提前致谢
HMJ
答案 0 :(得分:3)
区分您所说的组件非常重要 - PHP是一种服务器端语言,用于执行数据库查询。 SQLite是iOS框架,允许我们在iOS操作系统上进行客户端数据库管理。在iPhone上,您可以执行使用PHP生成的相同查询,但是它们将使用objective-c构建。有一些有用的包装器可以做到这一点,包括FMDB。
答案 1 :(得分:1)
Kodiak PHP在iPad上运行。它安装了PDO。您可以创建本地sqlite数据库。我用这段代码测试了它:
<?php
error_reporting(E_ALL);
$db = new PDO('sqlite:test.sql');
$n = $db->exec('DROP TABLE IF EXISTS USER');
$n = $db->exec('CREATE TABLE user (login TEXT)');
$n = $db->exec('INSERT INTO user VALUES("joe")');
$r = $db->query('SELECT * FROM user');
foreach ($r as $row) {
echo $row['login']."\n";
}
?>
关于PH7 ......它只是实现了PHP语言和一些函数,它不支持所有PHP函数和扩展。例如,PCRE通常用于正则表达式处理。 PH7确实支持它。 PH7是一个重写版本,适用于嵌入式应用程序,基本上是一个功能更强大的脚本引擎,如Lua,但不像Javascript那么大。
Kodiak PHP是一个真正的PHP端口。使用phpinfo();看看已编译成什么,这是相当多的。
要在iOS应用程序中运行SQL脚本,您需要将PHP引擎编译到您的iOS应用程序中并让Apple允许它:) - Kodiak能够做到这一点,因为Apple允许导出用其应用程序编写的文件,但Apple不允许将文件导入应用程序。因此,您必须使用复制/粘贴。该应用程序用于编写和测试不运行一堆PHP脚本的代码来创建应用程序。
简而言之,您的问题的答案是:是的,可以在iOS应用程序中运行PHP并写入sqlite数据库。但是,要这样做,您需要将PHP库编译到您的应用程序中。为iOS编译PHP并不是一件容易的事(我还没有完成)。 Kodiak已经做到了,但我还没有找到适用于iOS的免费PHP库。
答案 2 :(得分:0)
我认为你不能在iOS上“安装”php。但是,你也可以,我不知道。
我认为,我会更容易创建一个具有相同架构和内容的本地数据库。
如果离线,请从实时数据库(网络)在线提取离线数据库。
如何?
编写一个将扮演“模型”角色的脚本。就像在MVC技术中一样。您的脚本只需要处理这两个DB。由于SQL是SQL,因此您的查询不会真正改变:
if(Offline){
// Offline
Use something similair to PDO but for SQLLite
} else {
// Online
Use something similair to PDO but for MySQL
}