我有一個應用程序,使用幾個PHP腳本來訪問MySQL數據庫。 任何人都可以建議如何實施離線版本? 我知道在應用程序中創建SQLLite數據庫並在Web服務器可用時填充它很容易嗎?真正?在iOS上運行PHP?
當我想查詢它,有可能做到這一點使用預先存在的PHP?
在此先感謝
HMJ
我有一個應用程序,使用幾個PHP腳本來訪問MySQL數據庫。 任何人都可以建議如何實施離線版本? 我知道在應用程序中創建SQLLite數據庫並在Web服務器可用時填充它很容易嗎?真正?在iOS上運行PHP?
當我想查詢它,有可能做到這一點使用預先存在的PHP?
在此先感謝
HMJ
我不認爲你可以在iOS上 「安裝」 PHP。但是,你也可能,我不知道。
我會做什麼,我認爲更容易的是創建一個具有相同模式和內容的本地數據庫。
如果離線,從離線數據庫中,從在線數據庫(web)在線提取。
如何?
編寫將扮演「模型」角色的腳本。這就像在MVC技術。你的腳本只需要處理兩個數據庫。由於SQL是SQL,你的查詢不會真正改變這樣:
if(Offline){
// Offline
Use something similair to PDO but for SQLLite
} else {
// Online
Use something similair to PDO but for MySQL
}
,你讓你說話的組件之間的區別是很重要的 - PHP是指進行數據庫查詢的服務器端語言。 SQLite是iOS框架,它允許我們在iOS操作系統上進行客戶端數據庫管理。在iPhone上,您可以執行使用PHP生成的相同查詢,但它們將使用objective-c構建。有一些有用的包裝可以做到這一點,包括FMDB。
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腳本來創建應用程序的代碼。
簡而言之,您的問題的答案是:是的,可以運行PHP並寫入iOS應用程序中的sqlite數據庫。但是,要做到這一點,您需要將PHP庫編譯到您的應用程序中。編譯PHP for iOS是不小的功能(我還沒有完成)。 Kodiak已經完成了它,但我還沒有找到一個免費的iOS庫。
我們需要一臺主機才能正常運行php!所以應用程序將充當網絡服務器吧?我們可以通過其他設備的瀏覽器從任何地方或至少通過WiFi打開php頁面 – Vivo 2014-11-29 11:17:00