我正在尝试将用户输入(应该是电子邮件地址)存储到我的数据库中,但尽管收到成功消息,但它似乎不起作用:
INSERT INTO mydb.emails VALUES (''){"data":"您的数据已成功添加"}
。
(您可以在 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
对比
SELECT * FROM mydb.emails
注意innodb
与mydb
。您在两个不同的模式中是否有相同的表?也许您只是在错误的位置寻找数据?希望有帮助。
有关模式与数据库的更多信息,请查看 here .
关于javascript - 尽管出现成功消息,为什么用户输入不会进入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60022329/