我试图在用户提交搜索表单时尝试使用不同的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();
答案 0 :(得分:2)
您没有处理一个案例:当isset($_POST['search'])
为true
且!empty($search) && $search != 'Title:'
为假时。在这种情况下,$readNews
参数未初始化且未准备语句,解释了两个错误。