我正在尝试使用React本机应用程序中的访存来将数据发布到使用php作为在线mySQL数据库。
代码从我的user_registration.php文件返回了我的错误“重试”警报,并且没有将数据发布到我的数据库中。
我正在使用此示例教程https://tutorialscapital.com/insert-data-into-database-through-php-mysql-react-native-android-ios-tutorial/ 我已经检查了config_file.php以确保我的要求正确,并且认为这可能是服务器权限问题。我目前正在使用arvixe。
本机代码
export default class DataTestScreen extends Component
{
constructor()
{
super();
this.state = { first_name: '', last_name: '', loading: false, disabled: false }
}
saveData = () =>
{
this.setState({ loading: true, disabled: true }, () =>
{
fetch('https://xchangepost.com/user_registration.php',
{
method: 'POST',
headers:
{
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(
{
first_name: this.state.first_name,
last_name: this.state.last_name
})
}).then((response) => response.json()).then((responseJson) =>
{
alert(responseJson);
this.setState({ loading: false, disabled: false });
}).catch((error) =>
{
console.error(error);
this.setState({ loading: false, disabled: false });
});
});
}
下面是我的php配置文件
<?php
$host_name = "localhost";
$database_name = "xchangep_database";
$host_user = "xchangep_user123";
$host_password = "user321";
下面是我的注册php文件,我的警报来自 //如果($ query_result === true)
<?php
include 'config_file.php';
$message = '';
$connection = new mysqli($host_name, $host_user, $host_password, $database_name);
if ($connection->connect_error)
{
die("Connection failed: " . $connection->connect_error);
}
$json = json_decode(file_get_contents('php://input'), true);
$query = "INSERT INTO registration(first_name, last_name) values('$json[first_name]', '$json[last_name]')";
$query_result = $connection->query($query);
if ($query_result === true)
{
$message = 'Success!';
}
else
{
$message = 'Error! Try Again.';
}
echo json_encode($message);
$connection->close();
答案 0 :(得分:0)
使用CampbellMG的输入$message = 'Error! Try Again(' . $connection->error . ')';
的解决方案,我发现了问题,这表明我最终在数据库名称中打了一个错字。这是一个很棒的工具。非常感谢。