无法发送数据以在数据库中创建新产品

时间:2016-01-03 23:27:36

标签: php android mysql

我正在尝试创建用于上传数据的PHP文件以在数据库中创建新产品,但它必须是具有相同结构的每个数据库的唯一文件。
我编辑的代码看起来像这样(我对PHP一无所知,我只是尝试使用网络代码使应用程序与数据库一起工作):

<?php
    $response = array();
    if(isset($_POST['title']) && isset($_POST['review']) && isset($_POST['rating']) && isset($_POST['database_name'])) {

        $title = $_POST['title'];
        $review = $_POST['review'];
        $rating = $_POST['rating'];
        $database_name = $_POST['database_name'];

        require_once __DIR__ . '/db_connect.php';

        $db = new DB_CONNECT();

        $result = mysql_query("INSERT INTO " . $database_name . "(title, review, rating VALUES('$title', '$review', '$rating')");

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

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

        // echoing JSON response
            echo json_encode($response);
        }

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

        // echoing JSON response
        echo json_encode($response);
    }
?>

但它不起作用,我有一个名为“糟糕!错误!”的错误。我确信数据库没问题,因为我使用相同的变量从MySQL读取数据并且它完全正常工作,所以我认为有一些PHP代码。

2 个答案:

答案 0 :(得分:2)

您的查询失败,因为您尚未正确关闭它。这就是你所拥有的:

$result = mysql_query("INSERT INTO " . $database_name . "(title, review, rating VALUES('$title', '$review', '$rating')");

在指定) 之前,请注意缺少右括号(VALUES)。

这就是你需要的:

$result = mysql_query("INSERT INTO " . $database_name . "(title, review, rating) VALUES('$title', '$review', '$rating')");

答案 1 :(得分:0)

您的查询失败,因为您尚未正确关闭字段。

更改,

$result = mysql_query("INSERT INTO " . $database_name . "(title, review, rating VALUES('$title', '$review', '$rating')");

要,

$result = mysql_query("INSERT INTO " . $database_name . "(title, review, rating) VALUES('$title', '$review', '$rating')");

<强>通知

您也应该考虑从mysql_*切换到mysqliPDO,因为mysql已被officially弃用。

最后,您没有清理用户输入,这可能会让人们使用XSS攻击来破坏您的网站。查看htmlspecialchars

请记住:Never trust user input.