Отправьте запрос GET / POST в SQLite, используя Javascript - PullRequest
0 голосов
/ 25 марта 2020

Я создал свой database.db и создал таблицу следующим образом:

<?php
class MyDB extends SQLite3
{
        function __construct()
        {
                $this->open('database.db');
        }
}
$db = new MyDB();
if (!$db) {
        echo $db->lastErrorMsg();
} else {
        echo "Opened database successfully\n";
}

$sql = <<<EOF
      CREATE TABLE EVENTS
      (ID INTEGER PRIMARY KEY AUTO_INCREMENT,
      TITLE           char(50)        NOT NULL,
      DATE            CHAR(50)        NOT NULL,
      LOCATION        CHAR(50),
      DESCRIPTION     CHAR(50));
EOF;

$ret = $db->exec($sql);
if (!$ret) {
        echo $db->lastErrorMsg();
} else {
        echo "Table created successfully\n";
}
$db->close()

Мой запрос на получение:

exploreButton.addEventListener("click", () => {
  sectionArticles.style.display = "flex";
  window.scroll({
    top: window.innerHeight,
    left: 0,
    behavior: "smooth"
  });
  xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = () => {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      alert(xmlttp.responseText);
    }
  };
  xmlhttp.open("GET", "server/get.php", true);
  xmlhttp.send();
});

Мой запрос POST:

publishButton.addEventListener("click", evt => {
  evt.preventDefault();

  let formData = new FormData();
  formData.append("title", document.querySelector("#title").value);
  formData.append("date", document.querySelector("#date").value);
  formData.append("location", document.querySelector("#location").value);
  formData.append("type", document.querySelector("#type").value);
  formData.append("description", document.querySelector("#description").value);

  var xmlHttp = new XMLHttpRequest();
  xmlHttp.onreadystatechange = function() {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
      alert(xmlHttp.responseText);
    }
  };
  xmlHttp.open("POST", "server/publish-articlesql.php");
  xmlHttp.send(formData);
});

Вот так выглядит страница сервера / публикации sh sql. php:

<?php
class MyDB extends SQLite3
{
        function __construct()
        {
                $this->open('database.db');
        }
}

$db = new MyDB();
if (!$db) {
        echo $db->lastErrorMsg();
} else {
        echo "Opened database successfully\n";
}

$title = $_POST["title"];
$date = $_POST["date"];
$location = $_POST["location"];
$type = $_POST["type"];
$description = $_POST["description"];

$sql = <<<EOF
      INSERT INTO EVENTS (TITLE,DATE,LOCATION,DESCRIPTION)
      VALUES ({$title}, {$date}, {$location}, {$description} );
EOF;

$ret = $db->exec($sql);
if (!$ret) {
        echo $db->lastErrorMsg();
} else {
        echo "Records created successfully\n";
}
$db->close();

Для кого-то, кто опытен, что я делаю не так? Как правильно обрабатывать запросы POST / GET в моей ситуации? Всякий раз, когда я делаю эти запросы, я получаю 500: Внутренняя ошибка сервера. Код javascript прекрасно работал с MySQL, но, поскольку мне пришлось перейти на SQLite, я не знаю, как адаптировать к нему свой код JS. Может кто-нибудь объяснить мне, как, пожалуйста? Большое спасибо.

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