gpt4 book ai didi

php - 从 Xcode 将数据发布到外部数据库

转载 作者:行者123 更新时间:2023-11-30 00:22:07 27 4
gpt4 key购买 nike

我正在创建一个应用程序,用户单击两个按钮,然后它将信息上传到 godaddy 上托管的外部 mysql 数据库中。该代码过去可以工作,但现在不再工作,我不明白为什么它现在停止工作。你能看出代码有什么问题吗?或者如果这是最好的方法在我的 .h 文件中,我有这个以及我的文本字段

#define kPostURL @"http://www.mywebsite.com/dosomething.php"
#define kName @"name"
#define kMessage @"message"

在我的 .m 文件中,我有这段代码

-(void) postMessage:(NSString*) message withName:(NSString *) name{

//check isnt receiving two anit paramters
if(name !=nil && message !=nil){

NSMutableString *postString = [NSMutableString stringWithString:kPostURL];

[postString appendString:[NSString stringWithFormat:@"?%@=%@",kName, name]];
//makes kname equal to name
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kMessage , message]];

[postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];
[request setHTTPMethod:@"POST"];

postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

}
}


-(IBAction)post:(id)sender{
_textField3.text = @"15";
[self postMessage: self.textField2.text withName:self.textField3.text];
_textField2.text = nil;
_textField3.text = nil;
[self dismissViewControllerAnimated:YES completion:nil];
}

下面是我的 php 文件,这是有效的,然后我将其更改为 (int)$_POST["name"],看看它做了什么,但它不起作用,然后我将其改回原来的 $name = $_POST["name"] 并且它不再起作用。它现在创建一个新的测试条目,但具有空白的名称和消息字段,与以前一样用于填充它。

<?php
include ("./inc/connect.inc.php");
//header('Content-type: application/json');

$name = $_POST["name"];
$message =$_POST["message"];

$query = "INSERT INTO test VALUES ('','$name','$message')";

mysql_query($query) or die(mysql_error("error"));

mysql_close();

?>

为什么要这么做?这是向数据库添加条目的正确方法吗

最佳答案

就您的 PHP 而言,建议不要再使用 mysql_* 函数。请改用 PDO 和准备好的语句。

然后取决于你想如何将数据发送到服务器。基本上有两个可用选项:

可以处理此问题的 PHP 脚本可能如下所示:

<?php

/**
* Handle POST request with JSON payload like:
*
* {"name": "a name","message":"hi"}
*/

$body = file_get_contents('php://input');
$json = json_decode($body);

$parameters = array(
':name' => $json->name,
':message' => $json->message,
);

/**
* Or alternatively handle POST request with form-data payload
*/
$parameters = array(
':name' => $_POST['name'],
':message' => $_POST['message'],
);

// Use PDO, it is recommended over mysql_* functions for database interactions
// (can be outsourced to some included file if you prefer)
$db = new PDO(
'mysql:dbname=somedb;host=database.example.com',
'username',
'password'
);

// Use prepared statements to prevent SQL injection
$statement = $db->prepare(
'INSERT INTO test (name, message) VALUES (:name, :message)'
);
$statement->execute($parameters);
$statement->closeCursor();

关于php - 从 Xcode 将数据发布到外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23151101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com