PHP 未使用 fetch 正确接收 $_POST 变量
PHP doesn't properly receive a $_POST variable using 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()?
传递变量
如我所见,您已连接到数据库但未执行 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);
}
代码中至少有两个问题
echo
php
没有回复
您只记录 Response
对象,您可能希望在其中使用 Response.json()
、Response.text()
、Response.arrayBuffer()
或 Response.blob()
以 JSON
、纯文本、ArrayBuffer
或 Blob
的形式读取来自 php
的响应
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));
使用 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()?
传递变量如我所见,您已连接到数据库但未执行 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);
}
代码中至少有两个问题
echo
php
没有回复
您只记录
Response
对象,您可能希望在其中使用Response.json()
、Response.text()
、Response.arrayBuffer()
或Response.blob()
以JSON
、纯文本、ArrayBuffer
或Blob
的形式读取来自
php
的响应
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));