我遇到了一个问题。
今天,我制作了 Android 应用程序,用于将数据插入 MySQL 数据库。
当我尝试插入字符串类型(例如:名称)时,记录中显示:“名称”。
如何从插入的字符串中删除"
这是我的 PHP 脚本:
<?php
require "connect.php";
$firstHash = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRSTUWYZX", 5)), 0, 5);
$secondHash = substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPRSTUWYZX", 5)), 0, 20);
$file_path_URL = "";
$id = "PRD-$firstHash-$secondHash";
$name = $_POST["name"];
$description = $_POST["description"];
$price = $_POST["price"];
$state = $_POST["state"];
$category = $_POST["category"];
$file_path = "uploads/";
$response = array();
if (isset($_FILES["upload_file"]))
{
$target_file_name = $file_path .basename("$id.png");
if(file_exists($target_file_name))
{
$success = false;
$message = "Name already exist";
}
else
{
if (move_uploaded_file($_FILES["upload_file"]["tmp_name"], $target_file_name))
{
$photoPath = "$file_path_URL$id.png";
$query = "INSERT INTO `produkty`(`ID`, `Nazwa`, `Opis`, `Cena`, `Stan`, `Zdjecie`, `Kategoria`) VALUES ('$id', '$name', '$description', $price, $state, '$photoPath', '$category')";
$result = mysqli_query($conn, $query);
if(!$result)
{
$success = false;
$message = "Error on insert data";
}
else
{
$success = true;
$message = "Add product successfuly";
}
}
else
{
$success = false;
$message = "Error while uploading";
}
}
}
else
{
$success = false;
$message = "Required Field Missing";
}
$response["success"] = $success;
$response["message"] = $message;
$json = json_encode($response);
echo ($json);
?>
Android 中负责获取用户输入数据的方法:
private void getValues()
{
Log.v(TAG, "getValues(): init");
EditText nameET = findViewById(R.id.nameET);
EditText descriptionET = findViewById(R.id.descriptionET);
EditText priceET = findViewById(R.id.priceET);
EditText categoryET = findViewById(R.id.categoryET);
CheckBox stateCHB = findViewById(R.id.checkBox);
String name = nameET.getText().toString();
String description = descriptionET.getText().toString();
Float price = Float.valueOf(priceET.getText().toString());
String category = categoryET.getText().toString();
boolean state;
if (stateCHB.isChecked())
{
state = true;
}
else
{
state = false;
}
sendDataToServer(name, description, price, state, category, imagePath);
Log.v(TAG, "getValues(): end");
}
我把它像字符串一样发布到 PHP 中。这是一个错误吗?
我第一次从 Android 应用程序插入 MySQL 数据库。 请帮助我!
最佳答案
我没有立即看出这句话的出处。也许在“sendDataToServer”内部,但一种解决方案是替换
$name = $_POST["name"];
与
$name = str_replace( '"', '', $_POST["name"]);
在 PHP 代码中删除 POST 请求到达时的引号。
关于php - 如何从MySQL数据库中删除插入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54989694/