ホームページ >バックエンド開発 >PHPチュートリアル >助けを求めている初心者: PHP データベース エラー、致命的エラー: の非オブジェクトに対するメンバー関数 exec() の呼び出し

助けを求めている初心者: PHP データベース エラー、致命的エラー: の非オブジェクトに対するメンバー関数 exec() の呼び出し

WBOY
WBOYオリジナル
2016-08-08 09:28:553046ブラウズ

今日、以前の PDO データベースのカプセル化クラスを整理しましたが、それを使用すると、致命的なエラー: sqlcontrol.class.php の非オブジェクトのメンバー関数 exec() の 45 行目での呼び出しが報告されました。ヒント、このエラーは以前に変更がなかった場合には発生しませんでした。何が起こっているのでしょうか?
これは私が使用するクラスです

<code><span><?php</span>header(<span>"content-type:text/html;charset=utf-8"</span>);
<span><span>class</span><span>dbPdoManger</span>
{</span><span>private</span><span>$conn</span>=<span>''</span>;<span>//连接数据库服务器的资源类型</span><span>private</span><span>$host</span>=<span>""</span>;<span>//主机地址</span><span>private</span><span>$dbname</span>=<span>""</span>;<span>//数据库名称</span><span>private</span><span>$user</span>=<span>""</span>;<span>//数据库用户名</span><span>private</span><span>$pwd</span>=<span>""</span>;<span>//密码</span><span>private</span><span>$charset</span>=<span>""</span>;<span>//链接编码</span><span>private</span><span>$config</span>=<span>array</span>();

    <span>/*
     * 构造函数初始化数据库
     * 变量: $host连接的服务器名称
     *     $user登陆服务器的用户名
     *     $pwd登陆服务器的密码
     */</span><span>public</span><span><span>function</span><span>__construct</span><span>(<span>$config</span>)</span>
    {</span><span>$this</span>->config=<span>$config</span>;
        <span>$this</span>->host=<span>$this</span>->config[<span>"host"</span>];
        <span>$this</span>->dbname=<span>$this</span>->config[<span>"dbname"</span>];
        <span>$this</span>->user=<span>$this</span>->config[<span>"user"</span>];
        <span>$this</span>->pwd=<span>$this</span>->config[<span>"pwd"</span>];
        <span>$this</span>->charset=<span>$this</span>->config[<span>"charset"</span>];
        <span>//$this->open();</span>
    }

    <span>/*
     * 打开数据库
     */</span><span>public</span><span><span>function</span><span>open</span><span>()</span>
    {</span><span>$this</span>->conn=<span>new</span> PDO(<span>"mysql:host="</span>.<span>$this</span>->host.<span>";dbname="</span>.<span>$this</span>->dbname,<span>$this</span>->user,<span>$this</span>-pwd);
        <span>$this</span>->conn->query(<span>'set names '</span>.<span>$this</span>->charset);
        <span>echo</span><span>$this</span>->conn;
    }

    <span>/*
     * 增删改
     */</span><span>public</span><span><span>function</span><span>execSql</span><span>(<span>$sql</span>)</span>
    {</span><span>$bool</span>=<span>$this</span>->conn->exec(<span>$sql</span>);
        <span>if</span>(<span>$bool</span>><span>0</span>)
        {
            <span>return</span><span>true</span>;
        }<span>else</span>
        {
            <span>return</span><span>false</span>;
        }
    }

    <span>/*
     * 查询一条数据
    */</span><span>public</span><span><span>function</span><span>quer</span><span>(<span>$sql</span>,<span>$mode</span>=PDO::FETCH_ASSOC)</span>
    {</span><span>$result</span>=<span>$this</span>->conn->query(<span>$sql</span>);
        <span>$result</span>->setFetchMode(<span>$mode</span>);
        <span>$re</span>=<span>$result</span>->fetch();
        <span>$result</span>=<span>null</span>;
        <span>return</span><span>$re</span>;
    }

    <span>/*
     * 查询多条数据
    */</span><span>public</span><span><span>function</span><span>querMore</span><span>(<span>$sql</span>,<span>$mode</span>=PDO::FETCH_ASSOC)</span>
    {</span><span>$result</span>=<span>$this</span>->conn->query(<span>$sql</span>);
        <span>$result</span>->setFetchMode(<span>$mode</span>);
        <span>$re</span>=<span>$result</span>->fetchAll();
        <span>$result</span>=<span>null</span>;
        <span>return</span><span>$re</span>;
    }

    <span>/*查询指定表中有多少条记录*/</span><span>public</span><span><span>function</span><span>getTabRows</span><span>(<span>$key</span>,<span>$tableName</span>,<span>$where</span>)</span>
    {</span><span>$sql</span>=<span>"select count("</span>.<span>$key</span>.<span>") as 'c' from "</span>.<span>$tableName</span>.<span>" where "</span>.<span>$where</span>.<span>""</span>;
        <span>$result</span>=<span>$this</span>->conn->query(<span>$sql</span>);
        <span>$result</span>->setFetchMode(PDO::FETCH_ASSOC);
        <span>$re</span>=<span>$result</span>->fetch();
        <span>$result</span>=<span>null</span>;
        <span>return</span> intval(<span>$re</span>[<span>'c'</span>]);
    }

    <span>/*关闭数据库*/</span><span>public</span><span><span>function</span><span>closeConn</span><span>()</span>
    {</span><span>$this</span>->conn=<span>null</span>;
    }
}

<span>?></span></span></code>

以下は、このクラスを呼び出すために使用するコードです

​​
<code><span><span><?php</span>
header(<span>"content-type:text/html;charset=utf-8"</span>);
<span>include</span><span>"sqlcontrol.class.php"</span>;
<span>$config</span>[<span>"host"</span>]=<span>"localhost"</span>;
<span>$config</span>[<span>"dbname"</span>]=<span>"biaodan"</span>;
<span>$config</span>[<span>"user"</span>]=<span>"root"</span>;
<span>$config</span>[<span>"pwd"</span>]=<span>""</span>;
<span>$config</span>[<span>"charset"</span>]=<span>"utf-8"</span>;

<span>$db</span>=<span>new</span> dbPdoManger(<span>$config</span>);

<span>$sql</span>=<span>"INSERT INTO `test` (`name`, `nicheng`, `password`, `sex`, `icon`, `cardid`, `city`, `phone`, `qq`, `mail`, `liuyan`) 
     VALUES ('t', 't', 't', 't, 't', '1315', 'tttt', '598562', '79874564', 'tret', 'werterter')"</span>;

<span>echo</span><span>$db</span>->execSql(<span>$sql</span>);</span></span></code>

助けてください。 。 。

上記は、初心者向けのヘルプ: PHP データベース エラー、致命的エラー: 非オブジェクトでのメンバー関数 exec() の呼び出しに関する内容を紹介しており、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。