我正在尝试将用户输入(应该是一个电子邮件地址)存储到我的数据库中,尽管收到成功消息,但它似乎无法正常工作:
INSERT INTO mydb.emails VALUES (''){"data":"You Data added successfully"}
。
((您可以在php文件中我的代码的if
语句中看到此消息。
我怀疑创建表的方式和/或使用php文件中的$sql
变量的方式可能有所不同。
我有点碰壁,想知道我在做什么错?
下面我有所有需要的信息。
这是我的js文件:
import React, {Component} from 'react';
import axios from 'axios';
export default class ProductList extends Component {
constructor(props) {
this.addFormData = this.addFormData.bind(this);
}
addFormData(evt) {
evt.preventDefault();
const fd = new FormData();
fd.append('myEmail', this.refs.myEmail.value);
var headers = {
'Content-Type': 'application/json;charset=UTF-8',
// 'Host' : 'sdb.amazonaws.com'
"Access-Control-Allow-Origin": "*"
};
axios.post("myEndPoint", headers, fd)
.then(res => {
alert(res.data.data);
});
}
render() {
let styles = this.state.modalVisible
? {display: "block"}
: {display: "none"};
return (
<React.Fragment>
<form>
<div className="col-xs-2 text-center">
<input type="email" id="Email" aria-describedby="emailHelp" placeholder="Enter email" ref="myEmail" />
</div>
<button type="submit" className="submitEmail btn btn-primary" onClick={this.addFormData}>Submit</button>
</form>
</div>
</React.Fragment>
);
}
}
这是我的PHP文件:
<?php
header("Access-Control-Allow-Origin: *");
$servername = "my host";
$username = "my name";
$password = "my pw";
$dbname = "mydb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO innodb.emails
VALUES ('".$_POST['myEmail']."')";
echo $sql;
if (mysqli_query($conn,$sql)) {
$data = array("data" => "You Data added successfully");
echo json_encode($data);
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
这是我的SQL查询,用于创建包含电子邮件的表:
CREATE TABLE mydb.emails(emails VARCHAR(200));
SELECT * FROM mydb.emails;
似乎您正在一个模式中创建表,但是随后尝试在另一个模式中插入相同的表:
INSERT INTO innodb.emails
vs
SELECT * FROM mydb.emails
您在两个不同的架构中是否具有相同的表?也许您只是在错误的位置寻找数据?希望有帮助。