0

我需要帮助来弄清楚为什么我的 iPhone 应用程序没有与我的 PHP 通信。我有一个文本字段,用户可以在其中输入消息,并且有一个按钮应该告诉应用程序何时输入了文本并需要将其发布到我的 mySQL 数据库。

我的 PHP 和 iOS 代码粘贴在下面,但我还在这里包含了一些调试语句。

我在线路上休息了if([serverOutput...)一下,此时我得到以下信息:

alertsuccess UIAlertView * 0x00000000
数据URL NSData * 0x00000000
messageString __NSCFString * 0x0685e7a0 @"hi"
服务器输出 __NSCFConstantString * 0x00b75a7c
网址 NSURL * 0x06869540 @"http://www.mysite.com/connect.php?message=hi"

从调试断点开始,我希望 serverOutput 说“OK”,但它是空白的,我相信这意味着它没有与我的 PHP 连接。感谢您对如何解决此问题的帮助。

<?php
// Connecting, selecting database
$link = mysql_connect("localhost", "user", "password")
or die('Could not connect: ' . mysql_error());

mysql_select_db("mydb") or die('Could not select database');

// Performing SQL query
$query = "INSERT INTO messages (message,date) VALUES ('$_GET["message"]',NOW())";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

echo "OK";

// Free resultset
mysql_free_result($result);

// Closing connection
mysql_close($link);
?>

iPhone 代码

- (IBAction)postmessage:(id)sender {

self.message = self.messageField.text;
NSString *messageString = self.message;
UIAlertView *alertsuccess;

 //construct an URL for your script, containing the encoded text for parameter value
NSURL* url = [NSURL URLWithString:
 [NSString stringWithFormat:
 @"http://www.mysite.com/connect.php?message=%@",messageString]];

NSData *dataURL =  [NSData dataWithContentsOfURL:url];
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

if([serverOutput isEqualToString:@"OK"]) {

   alertsuccess = [[UIAlertView alloc] initWithTitle:@"Posted" message:@"Done"
                                                          delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

} else {
    alertsuccess = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Done"
                                                          delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

}
[alertsuccess show];

}
4

1 回答 1

1

错误在这里$query = "INSERT INTO messages (message,date) VALUES ('$_GET["message"]',NOW())";

应该

$query = "INSERT INTO messages (message,date) VALUES ('" . $_GET["message"] . "', NOW())";

或者

$query = "INSERT INTO messages (message,date) VALUES ('${_GET["message"]}', NOW())";
于 2012-07-30T09:31:09.313 回答