我正在尝试创建用于上传数据的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代码。
答案 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_*
切换到mysqli
或PDO
,因为mysql
已被officially弃用。
最后,您没有清理用户输入,这可能会让人们使用XSS攻击来破坏您的网站。查看htmlspecialchars