Phƣơng pháp lƣu trữ dữ liệu trên máy chủ

Một phần của tài liệu Hệ quản trị cơ sở dữ liệu Sqlite trên thiết bị di động và ứng dụng (Trang 60)

Với lượng dữ liệu lớn như hình ảnh hay video thì phương pháp lưu trữ dữ liệu trên server cũng là một phương pháp được lựa chọn sử dụng.

Hình 3.9. Mô hình iPhone App-Server

Với mô hình Client-Server, ứng dụng trên iPhone sẽ kết nối đến máy chủ thông qua dịch vụ web và ứng dụng không thao tác trực tiếp đến CSDL trên máy chủ. Khi ứng dụng từ thiết bị iPhone gửi một yêu cầu GET hoặc POST đến dịch vụ web, dịch vụ web sẽ truy vấn CSDL cho các dữ liệu được yêu cầu và sau đó trả lại cho ứng dụng các dữ liệu theo định dạng mà ứng dụng có thể hiểu được.

Trên máy chủ, mọi truy vấn đến CSDL được thực hiện thông qua một dịch vụ web. Để lấy danh sách các album thực hiện kết nối và truy vấn như sau:

<?php $con = mysqli_connect("sql211.byethost32.com","b32_15127688","82734 3","b32_15127688_PhotoAlbum"); // Check connection if (mysqli_connect_errno()) {

echo "Failed to connect to MySQL: " . mysqli_connect_error();

}

$result = mysqli_query($con,"SELECT * FROM Album"); //fetch the data from the database

$rs = array();

while ($row = mysqli_fetch_array($result)) { $rs[] = $row;

}

echo json_encode($rs); mysqli_close($con); ?>

Tương tự, để lấy danh sách tất cả các hình ảnh theo album:

<?php

$albumID = $_POST['ID']; // echo "album = ".$albumID; $con = mysqli_connect("sql211.byethost32.com","b32_15127688","82734 3","b32_15127688_PhotoAlbum"); // Check connection if (mysqli_connect_errno()) { return 1; }

$sql = "SELECT * FROM Photo WHERE AlbumID = $albumID"; // echo "sql = ".$sql; $result = mysqli_query($con,$sql); $data = array(); while($row = mysqli_fetch_array($result)) { $data[] = $row; } echo json_encode($data); mysqli_close($con); ?>

Dưới ứng dụng trên thiết bị iPhone, hay được coi là máy khách. Để gửi yêu cầu lên máy chủ, máy khách cần chỉ rõ địa chỉ máy chủ là gì, và phương thức thực hiện là POST hay GET:

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[strURL

stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]] ];

[theRequest setHTTPMethod:@"GET"];

Sau khi kết nối thành công, server trả về dữ liệu dạng NSData:

NSData* responeData = [NSURLConnection

sendSynchronousRequest:theRequest returningResponse:nil error:&error];

Một phần của tài liệu Hệ quản trị cơ sở dữ liệu Sqlite trên thiết bị di động và ứng dụng (Trang 60)

Tải bản đầy đủ (PDF)

(67 trang)