2014-02-12 4 views
-1

사용자가 게시하는 게시물에 따라 동적 페이지가 생성됩니다. 또한 페이지가로드 될 때마다 페이지가 올라간다는 관점 (방문 횟수 카운터)을 원합니다. 현재 다음 오류가 발생합니다.UPDATE prepared statement PHP 오류

Fatal error: Call to a member function bind_param() on a non-object in C:\Users\PC\Documents\XAMPP\htdocs\post.php on line 13

<?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 
+0

체크 위해서 var_dump ($ stmt에가) – funk

답변

0

쿼리에 문제가있는 것 같습니다.

$stmt = $mysqli->prepare("UPDATE forum SET Views = Views+ 1 WHERE ForumId = ?"); 
$stmt->bind_param('i', $post); 
+0

빠른 답장을 보내 주셔서 대단히 감사합니다. 대단히 감사합니다 –

2

제거 업데이트 쿼리 (') 작은 따옴표 대신 (`)

을 역 따옴표 사용 그래서

"UPDATE `forum` SET `Views` = Views+ 1 WHERE `ForumId` = ?" 
+0

수를 디버깅 :

를 적어 둡니다, 그 PDO 문은 작은 따옴표

이 함께 시도

을 필요 없어요? 또한 내부에 있어야합니까? 아니면 아무 것도 없어야합니까? – CodeBird

1

Krish 수출 R의 반응은 솔루션 것들 중 하나이지만 당신은 이런 경우에 할 것이고, 실제로는 에러 메시지를 얻으려면 $mysqli->error을보십시오. 그러면 'forum' SET 'Vi... 부근에 구문 오류가 있음을 알 수 있습니다. 그 자체로 그 특정 문자 (문자열의 첫 번째 문자)가 오류의 원인 일 가능성이 있음을 나타내야합니다.

0
<?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>