我在从iOS应用程序获取帖子时遇到问题。我想是PHP文件。我知道它可以连接到数据库,但它没有将值插入SQL数据库。
以下是我的PHP文件全文:
<?php
$dbhost = 'localhost';
$dbuser = 'username';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
$name =$_GET["name"];
$message = $_GET["message"];
mysqli_query INSERT INTO "test" ("", "name", "message",)
mysql_query($query) or die(mysql_error());
mysql_close();
?>
据我所知,我的iOS应用程序很好,发送信息也很好。但这是我第一次使用PHP。
我在线上显示错误
mysqli_query INSERT INTO "test" ("", "name", "message",)
但不确定如何解决。
我的IOS代码IS如下
-(void) postMessage: (NSString*) message withName: (NSString *) name{
if (name != nil && message != nil){
NSMutableString *postString = [NSMutableString stringWithString:kPostURL];
[postString appendString:[NSString stringWithFormat:@"?%@=%@", kName, name]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kMessage, message]];
[postString appendString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
}
-(IBAction)post:(id)sender{
[self postMessage:messageText.text withName:nameText.text];
[messageText resignFirstResponder];
messageText.text = nil;
nameText.text = nil;
}
新的php代码
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
$name =$_GET["name"];
$message = $_GET["message"];
mysql_query("INSERT INTO test ('', $name, $message)") or die(mysql_error());
mysql_close();
?>
额外信息
该应用程序只是一个视图控制器一个TextField、TextView和一个按钮,如.h文件中的按钮
#define kPostURL @"http://www.dmk-media.com/taxi/tuttest.php"
#define kName @"name"
#define kMessage @"message"
@interface DMKFirstViewController : UIViewController{
IBOutlet UITextField *nameText;
IBOutlet UITextView *messageText;
NSURLConnection *postConnection;
}
-(IBAction)post:(id)sender;
然后发布消息
-(void) postMessage: (NSString*) message withName: (NSString *) name{
if (name != nil && message != nil){
NSMutableString *postString = [NSMutableString stringWithString:kPostURL];
[postString appendString:[NSString stringWithFormat:@"?%@=%@", kName, name]];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kMessage, message]];
[postString appendString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
}
然后按钮动作
-(IBAction)post:(id)sender{
[self postMessage:messageText.text withName:nameText.text];
[messageText resignFirstResponder];
messageText.text = nil;
nameText.text = nil;
}
这就是代码中的全部内容,它只是一个基本的应用程序,用于尝试和测试发布到我的sql server
删除:
$name =$_GET["name"];
$message = $_GET["message"];
...
mysqli_query INSERT INTO "test" ("", "name", "message",)
mysql_query($query) or die(mysql_error());
应该是:
$name = $_POST["name"];
$message = $_POST["message"];
mysql_select_db('DATABASE_NAME', $conn) or die(mysql_error());
...
mysql_query("INSERT INTO test(name, mesage) VALUES ('$name', '$message');", $conn) or die(mysql_error());
-(void) postMessage: (NSString*) message withName: (NSString *) name{
if (name != nil && message != nil){
NSMutableString *postString = [NSMutableString stringWithString:kPostURL];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
NSString *param = [NSString stringWithFormat:@"%@=%@&%@=%@",kName, name, kMessage, message];
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];
request.HTTPMethod = @"POST";
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}
}