在非对象上调用成员函数bindParam

时间:2014-04-06 13:23:49

标签: php sql pdo

我试图在用户提交搜索表单时尝试使用不同的sql语句。 我尝试使用下面的代码,但是我收到错误并且我不明白为什么,因为代码似乎对我而言。

你在这里看到可能导致这些错误的原因吗?

我得到的错误:

  

在$ readNews-> bindParam中的非对象上调用成员函数bindParam()

  

注意:未定义的变量:$ readNews-> bindParam中的readNews(':begin',begin,PDO :: PARAM_INT);

  

致命错误:在非对象中调用成员函数bindParam()   第53行的F:\ Xampp \ htdocs \ projeto \ admin \ posts \ noticias.php

我的代码:

$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();

1 个答案:

答案 0 :(得分:2)

您没有处理一个案例:当isset($_POST['search'])true!empty($search) && $search != 'Title:'为假时。在这种情况下,$readNews参数未初始化且未准备语句,解释了两个错误。