2012-04-18 2 views
2

У меня есть приложение, которое использует несколько скриптов php для доступа к базе данных mysql. Может ли кто-нибудь посоветовать о том, как реализовать автономную версию? Насколько я понимаю, легко создать базу данных SQLLite в приложении и заполнить ее, когда веб-сервер доступен? правда?Запуск PHP на iOS?

Когда я хочу запросить его, возможно ли это сделать, используя ранее существовавший php?

заранее спасибо

HMJ

ответ

0

Я не думаю, что вы можете "установить" PHP на IOS. Но, вы можете также, я не могу сказать.

Что я буду делать, проще всего, это создать локальную базу данных с той же схемой и т. Д.

Если в автономном режиме вытащить из автономной базы данных в онлайн-режиме из живой базы данных (сети).

Как сделать заказ?

Напишите сценарий, который будет играть роль «Модель». Это похоже на технику MVC. Ваш скрипт должен будет обрабатывать только оба БД. Поскольку SQL является SQL, ваши запросы не будут реально изменить так:

if(Offline){ 
    // Offline 
    Use something similair to PDO but for SQLLite 
} else { 
    // Online 
    Use something similair to PDO but for MySQL 
} 
3

Очень важно, что вы делаете различие между компонентами вы говорите о PHP - это язык на стороне сервера, который предназначен для выполнения запросов к БД , SQLite - это iOS-инфраструктура, которая позволяет нам управлять БД на стороне клиента в операционной системе iOS. На iPhone вы можете выполнять те же запросы, которые сгенерированы с использованием вашего PHP, но они должны быть построены с использованием объектного c. Для этого есть несколько полезных оберток, включая FMDB.

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(); чтобы увидеть, что скомпилировано в нее, это совсем немного.

Чтобы запустить скрипты SQL в приложении iOS, вам необходимо скомпилировать PHP-приложение в приложение iOS и заставить Apple его разрешать :) - Kodiak может это сделать, потому что Apple позволяет экспортировать файлы, написанные в их приложение, но Apple не разрешает импортировать файлы в приложение. Поэтому вы должны использовать copy/paste. Приложение предназначено для написания и тестирования кода, не запускающего скрипт PHP для создания приложения.

Короче говоря, ответ на ваш вопрос: Да, можно запустить PHP и записать в базу данных sqlite в приложении iOS. Однако для этого вам нужно будет скомпилировать библиотеку PHP в ваше приложение. Компиляция PHP для iOS - это не маленький подвиг (я еще этого не делал). Kodiak это сделал, но я еще не нашел свободно доступную библиотеку PHP для iOS.

+0

Нам нужен хост, чтобы запустить php прямо! поэтому приложение будет действовать как веб-сервер? мы можем открыть php-страницу из любого места или по крайней мере через Wi-Fi в браузерах других устройств – Vivo