2014-04-06 3 views
-3

사용자가 검색 양식을 제출하는 경우 다른 SQL 문을 수행하려고합니다. 아래에서이 코드로 시도하고 있지만 오류가 발생하고 이유를 이해하지 못합니다. 왜냐하면 코드가 나를 위해 gode로 보이기 때문입니다.비 객체에서 멤버 함수 bindParam 호출

여기에 오류의 원인이 될 수있는 것이 있습니까?

오류 임지고 :

Call to a member function bindParam() on a non-object in $readNews->bindParam

Notice: Undefined variable: readNews in $readNews->bindParam(':begin', begin, PDO::PARAM_INT);

Fatal error: Call to a member function bindParam() on a non-object in F:\Xampp\htdocs\projeto\admin\posts\noticias.php on line 53

내 코드 :

$pag = (empty($_GET['pag']) ? '1' : $_GET['pag']); 
$maximo = 5; 
$begin = ($pag * $max) - $max; 

if (isset($_POST['search'])) 
{ 
$search = $_POST['search']; 
if(!empty($search) && $search != 'Title:') 
{ 
$readNews = $pdo->prepare("SELECT * FROM news WHERE title LIKE CONCAT('%', :search, '%') ORDER BY data DESC LIMIT :begin, :max"); 
$readNews->bindParam(':search', $search); 
} 
}  
else 
{ 
$readNews = $pdo->prepare('SELECT * FROM news ORDER BY data DESC LIMIT :begin, :max'); 
} 

$readNews->bindParam(':begin', begin, PDO::PARAM_INT); 
$readNews->bindParam(':max', $max, PDO::PARAM_INT); 
$readNews->execute(); 
$resultReadNews = $readNews->rowCount(); 
+0

코드가 적절하게 들여 쓰여진 경우 문제가 아주 분명합니다. – faintsignal

답변

2

한 케이스를 취급하지 않습니다 : isset($_POST['search'])true이고 !empty($search) && $search != 'Title:'이 거짓 인 경우 false입니다. 이 경우 $readNews 매개 변수가 초기화되지 않았으며 명령문이 준비되지 않았으므로 두 오류가 모두 설명됩니다.

관련 문제