JavaScript — PHP неправильно получает переменную $ _POST, используя fetch

Используя React-Native и fetch (), я хочу создать новую запись в базе данных, используя скрипт PHP. Сам скрипт PHP работает, успешно протестировал его на HTML-странице.
Но я пока не могу заставить работать мою версию Javascript fetch ().

// App.js

const dbData = new FormData();
dbData.append(
'fileName', 'fileNameTest',
);

fetch('http://myurl.com/createDatabaseEntry.php', {
headers: {
'Content-Type': 'multipart/form-data',
},
method: 'POST',
body: dbData,
}).then((res) => {
console.log('Database response: ', res);
})
.catch((error) => {
console.log('DB error: ', error);
});

Кстати: состояние сети в журналах всегда 200.

PHP сторона:

// createDatabaseEntry.php

$fileName = $_POST['fileName'];
$link = mysqli_connect('localhost', 'login', 'password',
'myDatabase');
$sql = "INSERT INTO files (fileName) VALUES ('$fileName')";

Вероятно, речь идет о передаче переменных с помощью fetch или dbData.append ()?

0

Решение

В коде есть как минимум две проблемы

  1. Нет ответа echoизд php

  2. Вы только вход Response объект, где вы, вероятно, ожидаете использовать Response.json(), Response.text(), Response.arrayBuffer() или же Response.blob() читать ответ от php как JSON, простой текст, ArrayBuffer или Blob


fetch('http://myurl.com/createDatabaseEntry.php', {
method: 'POST',
body: dbData,
})
.then(res => res.text()).then(text => console.log(text))
.catch(error => console.error('DB error: ', error));
0

Другие решения

Как я вижу, вы подключились к базе данных, но не выполнили оператор INSERT.
Пожалуйста, не забудь
1) побег аргументов
2) обработка ошибок

$filename = mysqli_real_escape_string($link, $fileName);
$sql = "INSERT INTO files (fileName) VALUES ('$filename')";
if (true === mysqli_query($link, $sql)) {
echo 'Insert done';
} else {
echo 'Error: ' . mysqli_error($link);
}
0

По вопросам рекламы [email protected]