如何通过Web服务(php)sql查询从ios iphone sdk中选择条件来捕获数据

时间:2012-08-14 21:41:30

标签: iphone mysql objective-c ios web-services

我有以下php文件:

<?php 
$username="root";
$database="testdb";
mysql_connect(localhost,$username);
$user=$_GET["user"];
$password=$_GET["password"];
$query="SELECT documento FROM person WHERE user='".$user." and  password ='".$password."'";

$result=mysql_query($query) or die (mysql_error("error "));

$num=mysql_numrows($result);

mysql_close();

$rows=array();

while($r=mysql_fetch_assoc($result)){

$rows[]=$r;

 }
 echo json_encode($rows);

 ?>

检索由以下函数实现的信息但是示例没有php输入条件和参数select * from person这里的函数  基于http://www.youtube.com/watch?feature=endscreen&v=IQcLngIDf9k&NR=1

-(void) getData:(NSData *) data{

   NSError *error;

   json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

}

-(void) start {
   NSURL *url = [NSURL URLWithString:kGETUrl];

   NSData *data = [NSData dataWithContentsOfURL:url];

   [self getData:data];

}   

现在因为sql语句的输入参数不是代码而且尝试了类似A Simple PHP/MySQL Web Service for iOS的内容,但我无法满足我的需要。

2 个答案:

答案 0 :(得分:1)

传递字符串中的参数。这是一个例子

-(void) start {
    NSString *user     = [[NSString alloc] initWithString:@"exampleuser"];
    NSString *password = [[NSString alloc] initWithString:@"examplepassword"];
    NSString *urlstr   = [[NSString alloc] initWithFormat:@"http://myserver.com/myphpfile.php?user=%@?password=%@", user, password];
    NSURL    *url      = [NSURL URLWithString:urlstr];
    NSData   *data     = [NSData dataWithContentsOfURL:url];
    [self getData:data];
}

因为它是密码和用户,所以通常最好使用POST而不是GET,因为它不是可见的URL的一部分。使用POST,如果您有https行,则可以隐藏它。但我认为这不是你现在主要关注的问题。以上应该有效。

答案 1 :(得分:0)

我在Hollfeder的代码中做了一些改动,它完美地工作了:)

-(void) start {
NSString *user     = [[NSString alloc] initWithString:@"exampleuser"];
NSString *password = [[NSString alloc] initWithString:@"examplepassword"];
NSString *urlstr   = [[NSString alloc] initWithFormat:@"http://myserver.com/myphpfile.php?user=%@&password=%@", user, password];
NSString *urlstr_encoded = [urlstr stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];

NSURL    *url      = [NSURL URLWithString:urlstr_encoded];
NSData   *data     = [NSData dataWithContentsOfURL:url];
[self getData:data];

}