Почему пользователь не вводит go внутри базы данных, несмотря на сообщение об успехе? - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь сохранить пользовательский ввод, который должен быть адресом электронной почты, в моей базе данных, но, похоже, он не работает, несмотря на сообщение об успехе:

INSERT INTO mydb.emails VALUES (''){"data":"You Data added successfully"}.

(Вы можете увидеть это сообщение в выражении if моего кода в файле php).

Я подозреваю, что что-то не так с тем, как я создал свою таблицу и / или как я использую переменную $sql внутри файла php.

Я врезался в стену и хотел бы знать, что я делаю не так?

Ниже у меня есть вся необходимая информация.

Вот мой 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;

1 Ответ

0 голосов
/ 02 февраля 2020

Похоже, вы создаете свою таблицу в одной схеме, но затем пытаетесь вставить ее в идентичную таблицу в другой схеме:

INSERT INTO innodb.emails

против

SELECT * FROM mydb.emails

Обратите внимание на innodb против mydb. У вас есть идентичные таблицы в двух разных схемах? Может быть, вы просто ищете свои данные не в том месте? Надеюсь, это поможет.

Для получения дополнительной информации о схемах и базах данных, проверьте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...