簡體   English   中英

使用PDO for PHP Xcode將數據插入MySQL

[英]Inserting Data to MySQL using PDO for PHP Xcode

我真的很難理解為什么下面的代碼沒有插入我發送的日期?

<?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中經歷了大量的教程和問題,我無法看出問題所在。

好像你發出了一個get請求,而不是post請求,這意味着你的$_POST是未定義的,這可能是導致你看到的PDO錯誤的原因。 相反,您應該從$_GET全局變量中檢索值:

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

您的HTTP請求是使用GET協議發送的,但您使用POST協議訪問數據。 你有三個潛在的修復,

  1. 更改PHP以使用GET讀取數據

    $ email = $ _GET ['email'];

  2. 將PHP更改為與模式無關(我的偏好)

    $ email = $ _REQUEST ['email'];

  3. 將您的iPhone應用更改為使用帖子發送。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM