Heim >Backend-Entwicklung >PHP-Tutorial >Neuling bittet um Hilfe: PHP-Datenbankfehler, Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion exec() für ein Nicht-Objekt in

Neuling bittet um Hilfe: PHP-Datenbankfehler, Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion exec() für ein Nicht-Objekt in

WBOY
WBOYOriginal
2016-08-08 09:28:553051Durchsuche

Heute habe ich die vorherige PDO-Datenbankkapselungsklasse aussortiert, aber bei der Verwendung wurde ein Fehler gemeldet: Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion exec() für ein Nicht-Objekt in sqlcontrol.class.php Zeile 45 Dies ist eine vollständige Fehlermeldung. Dieser Fehler ist nicht aufgetreten, als zuvor keine Änderung vorgenommen wurde.
Dies ist die Klasse, die ich verwende

<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>

Das Folgende ist der Code, den ich verwende, um diese Klasse aufzurufen

<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>

Bitte helfen Sie mir. . .

Das Obige stellt die Anfängerhilfe vor: PHP-Datenbankfehler, Schwerwiegender Fehler: Aufruf einer Mitgliedsfunktion exec() für ein Nicht-Objekt, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn