簡體   English   中英

PHP中的准備好的SQL語句不更新MySQL數據庫行

[英]Prepared SQL Statement in PHP Not Updating MySQL Database Row

我試圖用PHP腳本中的新行更新MySQL數據庫表。 該腳本從前端HTML表單調用,該表單被序列化並作為$ _POST變量傳遞給PHP。

    $stmt = $con->prepare("UPDATE blog SET tag = ?, datestamp = ?, title = ?, content = ?, views = ?, shares = ? WHERE id=?");
    $stmt->bind_param("ssssiii", $tag, $datestamp, $title, $content, $views, $shares, $postid);
    $stmt->execute();

    / Check whether the execute() succeeded 
    if ($stmt->errno) {
        echo "FAILURE! " . $stmt->error;
    }
    else {
        echo var_dump($stmt);
        printf("%d Row updated.\n", $stmt->affected_rows); 
    }

該請求不會引發錯誤,但是數據庫行未更新,並且輸出“ 0行已更新”。 序列化的數據將作為正確的類型(適當時為字符串和整數)發送。 有誰知道是什么原因造成的?

echo var_dump($ stmt)返回:

object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(0) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(7) ["field_count"]=> int(0) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }

您的代碼看起來不錯,請仔細檢查什么是$postid以及是否與博客表中具有id的記錄匹配。

還要確保您使用的數據庫正確(檢查連接詳細信息)。

旁注:請勿使用echo var_dump()var_dump()本身將對其進行回顯。

暫無
暫無

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

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