尽管有成功消息,为什么用户输入不进入数据库?

问题描述 投票:1回答:1

我正在尝试将用户输入(应该是一个电子邮件地址)存储到我的数据库中,尽管收到成功消息,但它似乎无法正常工作:

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;
javascript php sql reactjs debugging
1个回答
0
投票

似乎您正在一个模式中创建表,但是随后尝试在另一个模式中插入相同的表:

INSERT INTO innodb.emails

vs

SELECT * FROM mydb.emails

您在两个不同的架构中是否具有相同的表?也许您只是在错误的位置寻找数据?希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.