使用PDO for PHP Xcode将数据插入MySQL

时间:2015-06-03 15:37:11

标签: php mysql xcode pdo

我真的很难理解为什么下面的代码没有插入我发送的日期?

<?php
$servername = "servername";
$username = "username";
$password = "passwrd";
$dbname = "dbname";


$conn  = new PDO ("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$Name = $_POST['Name'];
$Last = $_POST['Last'];
$email = $_POST['email'];
$pwd = $_POST['pwd'];
$userID = $_POST['userID'];

$sql = "INSERT INTO Users (Name, Last, email, password, userID) VALUES (:var1, :var2, :var3, :var4, :var5) "; 

$q = $conn -> prepare($sql);

$q -> execute (array(':var1' => $Name,
               ':var2' => $Last,
               ':var3' => $email,
               ':var4' => $pwd,
               ':var5' => $userID));

?>

如果不是

$Name = $_POST['Name']; 

依旧......我对这些值进行硬编码,所以我可能会:

$Name = 'Jane';

它将数据添加到数据库,但是使用$ _POST,它在执行行失败。

我的Xcode看起来像:

NSString *strURL = [NSString stringWithFormat:@"http://www.myserver/AddUser.php?Name=%@&Last=%@&email=%@&pwd=%@&userID=%@", Name, Last, email, pwd, userID];
NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding];

我在SO中经历了大量的教程和问题,但我无法看出问题所在。

2 个答案:

答案 0 :(得分:3)

好像您发出了get请求,而不是post请求,这意味着您的$_POST未定义,这可能是导致$_GET您正在看到的PDO错误。相反,您应该从$Name = $_GET['Name']; $Last = $_GET['Last']; $email = $_GET['email']; $pwd = $_GET['pwd']; $userID = $_GET['userID']; 全局变量中检索值:

IF(ISERROR(MATCH("NonPaid",$A2:$G2,0)),OFFSET(INDIRECT(ADDRESS(ROW($D2),MATCH("Paid",$A2:$G2,0))),0,1),"NonPaid")

答案 1 :(得分:3)

您的HTTP请求是使用GET协议发送的,但您使用POST协议访问数据。您有三个可能的修复方法,

  1. 使用GET更改PHP以读取数据

    $ email = $ _GET [&#39; email&#39;];

  2. 将PHP更改为与模式无关(我的偏好)

    $ email = $ _REQUEST [&#39; email&#39;];

  3. 将您的iPhone应用更改为使用帖子发送。