簡體   English   中英

查詢已執行,但數據未保存到數據庫PHP / SQL中

[英]Query executed, but data not saved into database PHP/SQL

我正在嘗試執行將POST數據保存到數據庫中的SQL查詢。 數據正確輸入,並且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();                            
          }    

}

在此處輸入圖片說明 這就是數據庫的樣子

提前致謝!

您不應假定查詢已成功運行,因為未引發異常。 您需要先考慮該函數返回什么以及受影響的行數,然后才能知道該函數是否成功運行。 將您的代碼更新為此,並找出發生了什么:

還要檢查以確保您不只是一次又一次地更新同一行。

//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);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM