[英]UPDATE prepared statement PHP Error
我正在創建一個動態頁面,該頁面會根據用戶點擊過的帖子而變化。 我還希望每次加載頁面時頁面的視圖(點擊計數器)都增加一。 我目前收到以下錯誤。
致命錯誤:在第13行的C:\\ Users \\ PC \\ Documents \\ XAMPP \\ htdocs \\ post.php中的非對象上調用成員函數bind_param()
<?php
session_start();
include 'php/config.php';
$post = $_GET['post'];
$stmt = $mysqli->prepare("SELECT * FROM forum WHERE ForumId = '$post'");
$stmt->execute();
$stmt->bind_result($ForumId,$ForumTitle,$ForumPostText,$PostDate,$Views);
$stmt->fetch();
$stmt->close();
$Views = 1;
$stmt = $mysqli->prepare("UPDATE 'forum' SET 'Views' = 'Views'+ 1 WHERE 'ForumId' = '?' ");
$stmt->bind_param('i',$post);
$stmt->execute();
$stmt->close();
?>
<!DOCTYPE html>
// The rest of the webpage yada yada yada
在更新查詢中刪除( '
)單引號,而使用反引號(`)
所以
"UPDATE `forum` SET `Views` = Views+ 1 WHERE `ForumId` = ?"
盡管Krish R的響應是解決方案,但是在這種情況下,您要做的一件事是查看$mysqli->error
以實際獲得錯誤消息。 這將告訴您在'forum' SET 'Vi...
附近有語法錯誤。 它本身應表明該特定字符(字符串中的第一個')是最有可能導致錯誤的原因。
看來您在查詢中有問題。
請注意,PDO語句不需要單引號
試試這個:
$stmt = $mysqli->prepare("UPDATE forum SET Views = Views+ 1 WHERE ForumId = ?");
$stmt->bind_param('i', $post);
<?php
session_start();
include 'php/config.php';
$post = $_GET['post'];
$stmt = $mysqli->prepare("SELECT * FROM forum WHERE ForumId = $post");
$stmt->execute();
$stmt->bind_result($ForumId,$ForumTitle,$ForumPostText,$PostDate,$Views);
$stmt->fetch();
$stmt->close();
$Views = 1;
$stmt = $mysqli->prepare("UPDATE forum SET Views = Views + 1 WHERE ForumId = ?");
$stmt->bind_param('i', $post);
$stmt->execute();
$stmt->close();
?>
<!DOCTYPE html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.