我有以下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的内容,但我无法满足我的需要。
答案 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];
}