3

いくつかの php スクリプトを使用して mysql データベースにアクセスするアプリがあります。オフライン バージョンを実装する方法について誰かアドバイスできますか? アプリで SQLLite データベースを作成し、Web サーバーが利用可能になったときにデータを入力するのは簡単だと思いますか? 真実?

クエリを実行したい場合、既存の php を使用してクエリを実行できますか?

前もって感謝します

HMJ

4

3 に答える 3

3

話しているコンポーネントを区別することが重要です。PHP は、DB クエリを実行するためのサーバー側言語です。SQLite は、iOS オペレーティング システムでクライアント側の DB 管理を可能にする iOS フレームワークです。iPhone では、PHP を使用して生成されたものと同じクエリを実行できますが、これらは Objective-C を使用して構築する必要があります。FMDB など、これを行う便利なラッパーがいくつかあります。

于 2012-04-18T16:33:51.583 に答える
2

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 にそれを許可してもらう必要があります :)アプリにファイルをインポートすることはできません。したがって、コピー/貼り付けを使用する必要があります。このアプリは、アプリを作成するために大量の PHP スクリプトを実行しないコードを記述およびテストすることを目的としています。

要するに、あなたの質問に対する答えは次のとおりです。はい、iOS アプリで PHP を実行して sqlite データベースに書き込むことは可能です。ただし、そのためには、PHP ライブラリをアプリにコンパイルする必要があります。PHP を iOS 用にコンパイルするのは簡単なことではありません (私はまだ行っていません)。Kodiak はそれを実行しましたが、私は iOS 用の無料で利用できる PHP ライブラリをまだ見つけていません。

于 2013-07-26T14:03:26.120 に答える
0

iOSにphpを「インストール」できないと思います。しかし、あなたもそうかもしれませんが、私にはわかりません。

私がすることは、簡単だと思いますが、同じスキーマなどでローカル データベースを作成することです。

オフラインの場合はオフライン DB からプルし、オンラインはライブ DB (web) からプルします。

方法 ?

「モデル」の役割を果たすスクリプトを作成します。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
}
于 2012-04-18T16:33:07.927 に答える