Php ASIHTTPRequest问题-无法将数据发布到数据库

Php ASIHTTPRequest问题-无法将数据发布到数据库,php,iphone,objective-c,xcode,asihttprequest,Php,Iphone,Objective C,Xcode,Asihttprequest,我正在尝试构建一个objective C应用程序,它使用ASIHTTPRequest将数据发布到远程数据库。目前,我正在使用MAMP服务器,并且正在努力使其正常工作。php文件在联机运行时可以工作,但我在让iphone应用程序将数据发布到php文件时遇到问题。这是我的密码: dbconnect.h #import <Foundation/Foundation.h> @interface dbconnect : NSObject { } -(void) postToDB:(NS

我正在尝试构建一个objective C应用程序,它使用ASIHTTPRequest将数据发布到远程数据库。目前,我正在使用MAMP服务器,并且正在努力使其正常工作。php文件在联机运行时可以工作,但我在让iphone应用程序将数据发布到php文件时遇到问题。这是我的密码:

dbconnect.h

#import <Foundation/Foundation.h>


@interface dbconnect : NSObject {

}

-(void) postToDB:(NSString*) msg;

@end
main

#import <UIKit/UIKit.h>
#import "dbconnect.h"

int main(int argc, char *argv[]) {
    dbconnect* dbc;
    dbc = [[dbconnect alloc]init];
    [dbc postToDB:@"TESTING"];
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    
    int retVal = UIApplicationMain(argc, argv, nil, nil);       
    [pool release]; 
    return retVal;
}

@结束

除此之外,您的请求永远不会执行。确保在请求对象上调用
startSynchronous
startSynchronous
。请考虑阅读《ASIHTTPRequest指南》。确保在请求对象上调用
startSynchronous
startSynchronous
。请考虑阅读《ASIHTTPRequest指南》。

你有没有考虑过,主要原因是造成问题的原因?您正在尝试执行所有数据操作,但尚未调用UIApplicationMain。您确定所有数据连接都已设置吗?也许您应该创建一个带有按钮的视图,并“正确地”测试它。您是否认为与main的混淆是问题的原因?您正在尝试执行所有数据操作,但尚未调用UIApplicationMain。您确定所有数据连接都已设置吗?也许您应该创建一个带有按钮的视图,并“正确地”测试它。我建议不要从
main()
进行测试,而是将请求放在应用程序委托的
applicationdFinishLaunching
中。我也不确定是否可以使用绝对路径而不是本地主机来处理MAMP。我建议不要从
main()
进行测试,而是将请求放在应用程序委托的
ApplicationIDFinishLaunching
中。我也不确定是否可以使用绝对路径而不是本地主机来寻址MAMP。
#import <UIKit/UIKit.h>
#import "dbconnect.h"

int main(int argc, char *argv[]) {
    dbconnect* dbc;
    dbc = [[dbconnect alloc]init];
    [dbc postToDB:@"TESTING"];
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    
    int retVal = UIApplicationMain(argc, argv, nil, nil);       
    [pool release]; 
    return retVal;
}
<?php

//connect to database
function connect() {
  $dbh = mysql_connect ("localhost", "root", "root") or die ('I cannot connect to the database because: ' . mysql_error());
  mysql_select_db("testers", $dbh); 
  return $dbh;
}

//store posted data
if(isset($_POST['message'])){
  $message = $_POST['message'];
  $dbh = connect();
  $query = "INSERT INTO  messages (message) VALUES ('$message')";
  $result = mysql_query( $query ) or die ("didn't query");  
}
?>
@implementation dbconnect

-(void) postToDB:(NSString*) msg{
    NSString *myphp = @"/Applications/MAMP/htdocs/databases/test.php";
    NSURL *url = [NSURL URLWithString:myphp];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setPostValue:msg forKey:@"message"];
    [request startAsynchronous];
}