2012-04-18 3 views
2

몇 가지 PHP 스크립트를 사용하여 mysql 데이터베이스에 액세스하는 앱이 있습니다. 누구나 오프라인 버전을 구현하는 방법에 대해 조언 할 수 있습니까? 응용 프로그램에 SQLLite 데이터베이스를 만들고 웹 서버를 사용할 수있을 때 데이터베이스를 채우는 것이 쉽다는 것을 알고 있습니까? 참된?iOS에서 PHP를 실행 하시겠습니까?

내가 쿼리하고 싶을 때 기존 PHP를 사용하여 쿼리 할 수 ​​있습니까? 난 당신이 iOS에서 PHP를 "설치"할 수 있다고 생각하지 않습니다 사전

HMJ

답변

0

에서

감사합니다. 그러나, 당신은 또한 말할 수 없습니다.

동일한 스키마와 항목으로 로컬 데이터베이스를 만드는 것이 더 쉽다고 생각합니다.

오프라인 인 경우 온라인 DB (웹)에서 오프라인 DB를 가져옵니다.

?

"모델"역할을 담당 할 스크립트를 작성하십시오. 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 
} 
3

그것은 당신이 당신이 말하고있는 구성 요소 사이의 구별하게하는 것이 중요합니다 - PHP는 DB 쿼리를 수행하기위한 것입니다 서버 측 언어를 . SQLite는 iOS 운영 체제에서 클라이언트 측 DB 관리를 허용하는 iOS 프레임 워크입니다. iPhone에서는 PHP를 사용하여 생성 된 것과 동일한 쿼리를 수행 할 수 있지만 objective-c를 사용하여 생성해야합니다. FMDB를 포함하여이를 수행하는 유용한 래퍼가 있습니다.

1

Kodiak PHP은 iPad에서 실행됩니다. PDO가 설치되어 있습니다. 로컬 sqlite 데이터베이스를 만들 수 있습니다. 나는이 코드를 테스트 : PH7에 관련하여

<?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"; 
} 
?> 

은 ... 그냥 PHP 언어와 일부 기능을 구현, 모든 PHP 기능이나 확장을 지원하지 않습니다. 예를 들어 PCRE는 정규 표현식 처리에 자주 사용됩니다. PH7에서 지원합니다. PH7은 임베디드 애플리케이션 용으로 고안된 것으로, 기본적으로 루아와 같은보다 뛰어난 스크립팅 엔진이지만 Javascript만큼 큰 것은 아닙니다.

Kodiak PHP는 실제 PHP 포트입니다. phpinfo()를 사용하십시오. 컴파일 된 내용을보기 위해 약간의 문제가 있습니다.

iOS 응용 프로그램에서 SQL 스크립트를 실행하려면 PHP 엔진을 iOS 응용 프로그램으로 컴파일하고 Apple에서 허용하도록해야합니다. - Kodiak은 Apple에서 할 수 있기 때문에 할 수 있습니다. 응용 프로그램에 파일을 가져올 수 없습니다. 따라서 복사/붙여 넣기를 사용해야합니다. 이 앱은 PHP 스크립트를 실행하지 않고 코드를 작성하고 테스트하여 앱을 만드는 용도로 사용됩니다.

요약하면 질문에 대한 대답은 : 예, PHP를 실행하고 iOS 응용 프로그램의 sqlite 데이터베이스에 쓸 수 있습니다. 그러나 이렇게하려면 PHP 라이브러리를 앱에 컴파일해야합니다. iOS 용 PHP 컴파일은 결코 쉽지 않습니다. Kodiak이 해냈습니다. 그러나 아직 iOS 용 무료 PHP 라이브러리를 찾지 못했습니다.

+0

PHP를 제대로 실행하려면 호스트가 필요합니다! 그래서 응용 프로그램은 웹 서버 역할을합니까? 다른 기기의 브라우저에서 Wi-Fi를 통해 어디서든 또는 최소한 Wi-Fi를 통해 PHP 페이지를 열 수 있습니까? – Vivo

관련 문제