Мой PHP не вставляет значения в мою базу данных SQL из запроса AJAX - PullRequest
0 голосов
/ 15 мая 2019

Я вызываю функцию на странице на тестовом php-сайте, чтобы отобразить html-форму для записи данных, которые будут отправлены в мою базу данных SQL через ajax, но по какой-то причине данные не вставляются. У меня есть все необходимые ссылки для начальной загрузки, js, ajax во включенном header.php, и у меня есть другие формы, отправляющие таблицы в той же базе данных на тестовом сайте, которые работают без проблем, так что соединение с базой данных выглядит нормально, что почему я так стараюсь понять, почему данные не вставляются.

Это тестовый сервер localhost на MAMP с использованием MySQL 5, PHP 5.

Мой файл с кодом для отображения формы ввода html при вызове находится в functions.php:

<?php

    session_start();

    $link = mysqli_connect("localhost", "user", "pass", "tables");

    if (mysqli_connect_errno()) {

        print_r(mysqli_connect_error());
        exit();
}

// other code ...

function displayTextInput() {

  global $link;

  echo '
  <div class="form">
    <div class="form-group">
    <textarea class="form-control" id="textDesc" placeholder="Description"></textarea>
    <textarea class="form-control" id="textType" placeholder="Type"></textarea>
  </div>
    <button id="postTextButton" class="btn btn-primary">Post Text</button>
  </div>';
}
?>

Мой вызов ajax находится в скрипте внутри footer.php:

<script>

$("#postTextButton").click(function() {

            $.ajax({
                type: "POST",
                url: "actions.php?action=postText",
                data: {textDesc: $("#textDesc").val(), textType: $("#textType").val()},
                success: function(result) {

                    if (result == "1") {

                      alert("ajax successful");

                    } else if (result != "") {

                        alert("ajax unsuccessful");

                    }
                }

            })

        })

</script>

И, наконец, мой SQL находится внутри actions.php:


if ($_GET['action'] == 'postText') {

          if (!$_POST['TextDesc']) {

            echo "Your text description is empty!";


          } else {

            $textDesc = mysqli_real_escape_string($link, $_POST['textDesc']);
            $textType = mysqli_real_escape_string($link, $_POST['textType']);
            $userIDForTable = mysqli_real_escape_string($link, $_SESSION['id']);


            mysqli_query($link, "INSERT INTO text (`description`, `type`, `userid`) VALUES ('$textDesc', '$textType', '$userIDForTable')");

              echo "1";
            }
          }

Я могу выводить операторы в разделе actions.php else {}, так что код определенно связан с этим, но я просто не могу понять, почему. Я даже связал приведенный выше код с другой таблицей php в той же базе данных, и она работала, поэтому я просто не могу понять, почему это не работает. В консоли нет ошибок, которые я вижу. Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 15 мая 2019

Слово текст - это специальное слово в MySQL, и я думаю, что ваш запрос выдает ошибку.добавьте это к своему коду после вашего оператора вставки:

var_dump(mysqli_error($link));

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

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