iOS no communication between iPhone app and MySQL database via PHP

蹲街弑〆低调 提交于 2019-12-11 23:43:58

问题


I need help trying to figure out why my iPhone app is not communicating with my PHP. I have a text field where the user can enter a message and there is a button that is supposed to tell the app when the text has been entered and needs to be posted to my mySQL database.

My PHP and iOS code are pasted below, but I also included some debugging statements here.

I put a break at the line if([serverOutput...) and at that point I get the following:

alertsuccess    UIAlertView *   0x00000000
dataURL NSData *    0x00000000 
messageString   __NSCFString *  0x0685e7a0 @"hi"
serverOutput    __NSCFConstantString *  0x00b75a7c
url NSURL * 0x06869540 @"http://www.mysite.com/connect.php?message=hi"

From the debug breakpoint, I would expect serverOutput to say "OK" but it's blank, which I believe means that it did not connect with my PHP. Your help is appreciated on how to fix this.

<?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 code

- (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];

}

回答1:


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

Should be

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

or

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


来源:https://stackoverflow.com/questions/11715521/ios-no-communication-between-iphone-app-and-mysql-database-via-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!