Запрос выполнен, но данные не сохранены в базу данных PHP / SQL - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь выполнить SQL-запрос, который сохраняет данные POST в базу данных.Данные поступают правильно, а массивы, которые идут с данными POST, преобразуются в строки.

Когда запрос выполняется, появляется сообщение «Успешно сохранено в базе данных», однако данные не отображаются в базе данных, поэтому в моем коде должна быть небольшая ошибка, однако я не могу этого сделатьНайди это.

См. Мой код ниже:

//database connection file
require "includes/dbh.inc.php";

foreach ($_POST as $post_var){
  $obj = json_decode($post_var);

  //Convert arrays to string
  $userLikes = implode("|", $obj->userLikes);
  $userEvents = implode("|", $obj->userEvents);
  $userPosts = implode("|", $obj->userPosts);

    $sql = "INSERT INTO visitor_data (id, fb_id, name, location, likes, events, posts) VALUES (NULL, ?, ?, ?, ?, ?, ?)";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: dom.php?error=sqlerror");
        exit();             
    }
    else {      
        mysqli_stmt_bind_param($stmt, "ssssss", $obj->userId, $obj->userName, $obj->userLocation, $userLikes, $userEvents, $userPosts);
        mysqli_stmt_execute($stmt);
        echo '<p>Succesfully saved into database</p>';
        exit();                            
          }    

}

enter image description here Так выглядит база данных

Заранее спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

Не следует полагать, что запрос был успешно выполнен, поскольку не было сгенерировано исключение.Вы должны рассмотреть, что возвращает функция, и на сколько строк это влияет, прежде чем узнавать, успешно ли она работает.Обновите свой код до этого и выясните, что происходит:

Также убедитесь, что вы не просто обновляете одну и ту же строку снова и снова.

//database connection file
require "includes/dbh.inc.php";

foreach ($_POST as $post_var){
    $obj = json_decode($post_var);

    //Convert arrays to string
    $userLikes = implode("|", $obj->userLikes);
    $userEvents = implode("|", $obj->userEvents);
    $userPosts = implode("|", $obj->userPosts);

    $sql = "INSERT INTO visitor_data (id, fb_id, name, location, likes, events, posts) VALUES (NULL, ?, ?, ?, ?, ?, ?)";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: dom.php?error=sqlerror");
        exit();
    }
    else {
        mysqli_stmt_bind_param($stmt, "ssssss", $obj->userId, $obj->userName, $obj->userLocation, $userLikes, $userEvents, $userPosts);
        if ( mysqli_stmt_execute($stmt) ) {
            echo '<p>Succesfully saved into database</p>';
        } else {
            printf("Error: %s.\n", mysqli_stmt_error($stmt) );
        }
    }

    mysqli_stmt_close($stmt);

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