【问题标题】:Tracking an SQL mistake跟踪 SQL 错误
【发布时间】:2015-11-19 22:16:08
【问题描述】:

我遇到以下问题: 我正在使用这段代码

$req = $bdd->prepare('SELECT * FROM news WHERE id= ? ');
        $res = $req->execute(array($id));
        return $res;

提取id为$id的消息。我将 $req 返回给控制器,这使它跟随

$data['news']= $this->News->get_main($_POST['id']);
        $this->layout->view('admin/newsmod',$data);

说到 newsmod 页面:

<?php
while ($donnees = $news->fetch())
{
?>

轰隆隆!

致命错误:在第 3 行的 views/admin/newsmod.php 中调用非对象的成员函数 fetch()。

我的 PDO 连接完成了

, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

但仍然没有其他结果

【问题讨论】:

  • 可能是return $res;,它只是一个布尔值。而您想返回 PDOStatement 实例。
  • 我会 var_dump($news) 看看它是 PDOStatement 实例还是布尔值。如果是后者,您返回错误的东西。

标签: php sql codeigniter pdo


【解决方案1】:

这不是 SQL 错误。

这是基本的 PDO 语法,必须是

$req = $bdd->prepare('SELECT * FROM news WHERE id= ? ');
$req->execute(array($id));
return $req;

【讨论】:

  • 如果我这样做,就会出现这个错误:不能使用 PDOStatement 类型的对象作为数组。我没有错误 "$req = $bdd->query('SELECT * FROM newsDS ORDER BY id DESC LIMIT 0, 5'); return $req;"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2018-09-19
相关资源
最近更新 更多