gpt4 book ai didi

java - 为什么我无法设置 POST 变量的值?

转载 作者:行者123 更新时间:2023-12-02 12:25:19 26 4
gpt4 key购买 nike

我目前正在开发一个与服务器(目前是本地)交互的 Android 应用程序。为此,我使用 PHP 与服务器进行 Java 代码通信。这是我第一次使用 PHP,所以我对此感到很困难。

由于某些原因,我需要保存在数据库中的所有值都是 null,当我测试 PHP 代码时,我是否从应用程序或从 URL 获取它们并不重要。我收到的唯一消息是:

{"success":0,"message":"Required field(s) is missing"}.

我尝试了 print_r ($_POST) 并得到:Array(),不确定这意味着什么。我也尝试了在互联网上看到的所有内容,但没有成功。

这是 PHP 代码:

<?php

$response = array();


if (!empty($_POST['name']) && !empty($_POST['breed']) && !empty($_POST['type']) && !empty($_POST['description']) && !empty($_POST['images']) && !empty($_POST['coords'])) {

$name = $_POST['name'];
$breed = $_POST['breed'];
$type = $_POST['type'];
$description = $_POST['description'];
$images = $_POST['images'];
$coords = $_POST['coords'];


require_once __DIR__ . '/db_connect.php';


$db = new DB_CONNECT();


$result = "INSERT INTO lost_pets (name, breed, type, description, images, coords) VALUES(':name', ':breed', ':type', ':description', ':images', ':coords')";

$stmt = $db->prepare($result);

$stmt->bindParam(':name', $_POST['name'], PDO::PARAM_STR);
$stmt->bindParam(':breed', $_POST['breed'], PDO::PARAM_STR);
$stmt->bindParam(':type', $_POST['type'], PDO::PARAM_STR);

$stmt->bindParam(':description', $_POST['description'], PDO::PARAM_STR);
$stmt->bindParam(':images', $_POST['images'], PDO::PARAM_STR);
$stmt->bindParam(':coords', $_POST['coords'], PDO::PARAM_STR);

$stmt->execute();


if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "Product successfully created.";


echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";


echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";


echo json_encode($response);
}
?>

我很确定问题出在这段代码中,而不是在 Java 代码中。希望您能帮助我,谢谢!

最佳答案

您错误地将 SQL 查询字符串分配给 $result 变量,然后愉快地测试查询字符串本身是否成功。

使用 $query 作为查询字符串,并测试 $stmt->execute() 是否失败:

if ($stmt->execute() === FALSE) {
// ERROR
}
else {
// Success!
}

关于java - 为什么我无法设置 POST 变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45527057/

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