Php 使用iOS前端将空白数据插入MYSQL数据库
我正在创建一个需要在mysql数据库(在线托管)中插入一行的应用程序,但是每当我尝试插入数据时,数据都是空白的。php并没有什么问题,因为我的web前端与php脚本完美配合Php 使用iOS前端将空白数据插入MYSQL数据库,php,mysql,ios,Php,Mysql,Ios,我正在创建一个需要在mysql数据库(在线托管)中插入一行的应用程序,但是每当我尝试插入数据时,数据都是空白的。php并没有什么问题,因为我的web前端与php脚本完美配合 NSString *user = self.registerUsername.text; NSString *password = self.registerPassword.text; NSString *email = self.registerEmail.text; NSString *model = [NSStrin
NSString *user = self.registerUsername.text;
NSString *password = self.registerPassword.text;
NSString *email = self.registerEmail.text;
NSString *model = [NSString stringWithFormat:@"%@", [[UIDevice currentDevice] model]];
NSString *sysVer = [NSString stringWithFormat:@"%@", [[UIDevice currentDevice] systemVersion]];
NSString *connectionURL = @"mydomain.com/Register.php";
NSLog(@"%@", connectionURL);
//this is logged correctly
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:connectionURL]];
[request setHTTPMethod:@"POST"];
NSString *insert = [[NSString alloc] initWithFormat:@"username=%@&password=%@&email=%@&model=%@&sysver=%@", user, password, email, model, sysVer];
NSLog(@"%@", insert);
[request setHTTPBody:[insert dataUsingEncoding:NSASCIIStringEncoding]];
//This is also logged correctly, giving me the right format i would expect
NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseString = [NSString stringWithUTF8String:[responseData bytes]];
NSLog(@"%@", responseString);
//The response string is also correct, but no data is inserted into the database
NSString *success = @"success";
[success dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%lu", (unsigned long)responseString.length);
NSLog(@"%lu", (unsigned long)success.length);
mRegister.php
<?php
header('Content-type: text/plain; charset=utf-8');
include("config/dp.php"); //<- db connection
$con = mysql_connect("127.0.0.1","user","pass");
if(! $con)
{
die('Connection Failed'.mysql_error());
}
mysql_select_db("hk", $con);
$message = "";
$username = ($_POST['username']);
$password = ($_POST['password']);
$email = ($_POST['email']);
$model = ($_POST['model']);
$sysver = ($_POST['sysver']);
$submit = $_POST["registerform"];
$sql = "INSERT INTO members (`username`, `password`, `email`, `model`, `sysver`) VALUES ('$username', '$password', '$email', '$model', '$sysver')";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
if ($result) { $message = "success"; }
else { $message = "failed"; }
echo utf8_encode($message);
?>
可能PHP没有解析请求正文,因为您没有设置内容类型
请求头:
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
另一方面,我建议您使用iOS的HTTP库,例如,这样您就不必担心手动生成请求体。签出。你说在线插入,是不是应该连接到服务器而不是本地主机?这只是因为我不想连接,但服务器的ip是不同的,它可以工作(我可以验证)编辑你的文章以包含缺少的列,这样其他人就不会说同样的话。@Mihai更新以删除拼写错误等