<small id='WXa3E'></small><noframes id='WXa3E'>

  1. <legend id='WXa3E'><style id='WXa3E'><dir id='WXa3E'><q id='WXa3E'></q></dir></style></legend>

    <tfoot id='WXa3E'></tfoot>
  2. <i id='WXa3E'><tr id='WXa3E'><dt id='WXa3E'><q id='WXa3E'><span id='WXa3E'><b id='WXa3E'><form id='WXa3E'><ins id='WXa3E'></ins><ul id='WXa3E'></ul><sub id='WXa3E'></sub></form><legend id='WXa3E'></legend><bdo id='WXa3E'><pre id='WXa3E'><center id='WXa3E'></center></pre></bdo></b><th id='WXa3E'></th></span></q></dt></tr></i><div id='WXa3E'><tfoot id='WXa3E'></tfoot><dl id='WXa3E'><fieldset id='WXa3E'></fieldset></dl></div>

      • <bdo id='WXa3E'></bdo><ul id='WXa3E'></ul>

    1. PDO:在非对象上调用成员函数 fetch()?

      时间:2023-09-19
        <tbody id='Bo9x0'></tbody>

      <small id='Bo9x0'></small><noframes id='Bo9x0'>

        <i id='Bo9x0'><tr id='Bo9x0'><dt id='Bo9x0'><q id='Bo9x0'><span id='Bo9x0'><b id='Bo9x0'><form id='Bo9x0'><ins id='Bo9x0'></ins><ul id='Bo9x0'></ul><sub id='Bo9x0'></sub></form><legend id='Bo9x0'></legend><bdo id='Bo9x0'><pre id='Bo9x0'><center id='Bo9x0'></center></pre></bdo></b><th id='Bo9x0'></th></span></q></dt></tr></i><div id='Bo9x0'><tfoot id='Bo9x0'></tfoot><dl id='Bo9x0'><fieldset id='Bo9x0'></fieldset></dl></div>

            1. <tfoot id='Bo9x0'></tfoot>
                <bdo id='Bo9x0'></bdo><ul id='Bo9x0'></ul>
                <legend id='Bo9x0'><style id='Bo9x0'><dir id='Bo9x0'><q id='Bo9x0'></q></dir></style></legend>

                本文介绍了PDO:在非对象上调用成员函数 fetch()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                我只是在尝试 PDO 并且收到此错误,致命错误:在非对象上调用成员函数 fetch(),但它不是已经在 $this->db 对象上了吗?

                I am just trying out PDO and I get this error, Fatal error: Call to a member function fetch() on a non-object, but isn't it already on the $this->db object?

                class shoutbox {
                
                    private $db;
                
                    function __construct($dbname, $username, $password, $host = "localhost" ) 
                    { # db conections
                        try {
                            $this->db = new PDO("mysql:host=".$hostname.";dbname=".$dbname, $username, $password);
                        }
                        catch(PDOException $e)
                        {
                            echo $e->getMessage();
                        }
                    }
                
                    function getShouts()
                    {
                        $sql_shouts = $this->db->query('SELECT shoutid, message, pmuserid, ipadress, time FROM shouts WHERE pmuserid == 0');
                
                        return $sql_shouts->fetch(PDO::FETCH_OBJ);
                
                    }
                
                }
                

                推荐答案

                仔细查看 PDO::query,特别是返回值"部分:

                Look carefully at the documentation for PDO::query, particularly the "Return Values" section:

                PDO::query() 返回一个 PDOStatement对象,或失败时为 FALSE.

                PDO::query() returns a PDOStatement object, or FALSE on failure.

                重要的一点是失败时为 FALSE".FALSE 不是一个对象,所以调用 ->fetch() 是个坏消息.

                The important bit is "FALSE on failure". FALSE is not an object, so calling ->fetch() is bad news.

                该错误可能是由于您使用了=="比较运算符.在 SQL 中,它只是=".

                The error is probably due to your use of "==" comparison operator. In SQL, it's just "=".

                你应该测试 $sql_shouts 是不是假的,然后对错误做一些聪明的事情,如果有的话:

                You should test that the $sql_shouts is not false, and then do something smart with the error, if there was one:

                <?PHP
                $sql_shouts = $this->db->query('...');
                if ($sql_shouts === false){
                    $errorInfo = $this->db->errorInfo();
                    //log the error or take some other smart action
                }
                return $sql_shouts->fetch(PDO::FETCH_OBJ);
                

                这篇关于PDO:在非对象上调用成员函数 fetch()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:表名作为参数使用 PDO/MySQL 准备好的语句 下一篇:Php PDO 功能有多安全:lastInsertId?

                相关文章

                最新文章

              • <tfoot id='ei6O8'></tfoot>

                <small id='ei6O8'></small><noframes id='ei6O8'>

                <i id='ei6O8'><tr id='ei6O8'><dt id='ei6O8'><q id='ei6O8'><span id='ei6O8'><b id='ei6O8'><form id='ei6O8'><ins id='ei6O8'></ins><ul id='ei6O8'></ul><sub id='ei6O8'></sub></form><legend id='ei6O8'></legend><bdo id='ei6O8'><pre id='ei6O8'><center id='ei6O8'></center></pre></bdo></b><th id='ei6O8'></th></span></q></dt></tr></i><div id='ei6O8'><tfoot id='ei6O8'></tfoot><dl id='ei6O8'><fieldset id='ei6O8'></fieldset></dl></div>
                  <bdo id='ei6O8'></bdo><ul id='ei6O8'></ul>

                1. <legend id='ei6O8'><style id='ei6O8'><dir id='ei6O8'><q id='ei6O8'></q></dir></style></legend>