【问题标题】:Call to a member function bindParam on a non-object [duplicate]在非对象上调用成员函数 bindParam [重复]
【发布时间】:2014-04-06 13:23:48
【问题描述】:

我正在尝试执行不同的 sql 语句以防用户提交搜索表单。 我正在尝试使用下面的代码,但我遇到了一个错误,我不明白为什么,因为代码对我来说似乎很不错。

您在此处看到可能导致这些错误的原因吗?

我遇到的错误:

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

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

致命错误:在非对象上调用成员函数 bindParam() F:\Xampp\htdocs\projeto\admin\posts\noticias.php 在第 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();

【问题讨论】:

  • 如果你的代码缩进得当,问题就很明显了。

标签: php sql pdo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2014-06-05
    • 2015-05-13
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多