0

我正在尝试向 MySQL DB 插入一些值,通过 iPad 应用程序在线访问它。

发送数据:

if(txtInput != nil){
        NSString *postVars = [NSString stringWithFormat:@"id=%d&input=%@", index, txtInput.text];
        NSLog(@"%d",index);
        index++;
        NSData *data = [postVars dataUsingEncoding:NSUTF8StringEncoding];

        NSString *strURL = @"http://localhost:8888/Insert.php";
        NSURL *url = [NSURL URLWithString:strURL];
        NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:url];
        [req setHTTPBody:data];
        [req setHTTPMethod:@"POST"];
        NSURLConnection *con = [NSURLConnection connectionWithRequest:req delegate:self];
    }

Web 服务的脚本:

<?php
$host = 'localhost';
$username = 'root';
$password = 'root';

$con = mysql_connect($host, $username, $password);
if(!$con)
{
echo "Failed connection";
echo "<br/>";
die('Connection failed');
}

mysql_select_db("unbounded", $con);

$ids = $_GET['id'];
$str = $_GET['input'];

$in= mysql_query("INSERT INTO `unbounded`.`stuff` (`id`, `string`) VALUES ('$ids','$str');");
echo $in;
echo "<br/>";
mysql_close($con);
?> 

一旦我在 PHPAdmin 页面运行我的应用程序,我可以看到每次执行应用程序时 id 值已设置为 0,而字符串值为空。

如果我通过浏览器运行脚本来插入数据就好了。顺便说一句,一旦我执行脚本 vi 浏览器,我发现与 DB 的连接已经建立良好。. 可能是什么问题?最好的毕业生

4

1 回答 1

1

在您的 iOS 应用程序中,您使用 POST 方法发送数据

[req setHTTPMethod:@"POST"];

但是在 PHP 中,您正在从 GET 中读取

$ids = $_GET['id'];

如果两者都使用相同的 HTTP 方法,它应该可以工作

与您的问题无关,但您的 PHP 代码容易受到SQL 注入攻击。

于 2013-02-05T00:09:39.663 回答