0

我有以下 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但我无法满足我的需要。

4

2 回答 2

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 的一部分。如果您有 https 行,则可以使用 POST 隐藏它。但我认为这不是你现在主要关心的问题。以上应该工作。

于 2012-08-15T19:23:25.327 回答
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];

}

于 2013-04-08T05:53:06.853 回答