Php foreach($k=>v的参数) { 如果($v[0]=$val) 返回$k; } } 私有函数构建参数($params) { $PDO_常量=数组( 'int'=>PDO::PARAM_int, 'str'=>PDO::PARAM_str, 'bool'=>PDO::PARAM_bool, 'float'=>PDO::PARAM_STR ); //将PDO值设置为params 对于($i=0;$ierror=$error; $this->pdorerror=$error; } //关闭一切 公共函数_udestruct() { //关闭数据库连接 $this->pdo=null; } }

Php foreach($k=>v的参数) { 如果($v[0]=$val) 返回$k; } } 私有函数构建参数($params) { $PDO_常量=数组( 'int'=>PDO::PARAM_int, 'str'=>PDO::PARAM_str, 'bool'=>PDO::PARAM_bool, 'float'=>PDO::PARAM_STR ); //将PDO值设置为params 对于($i=0;$ierror=$error; $this->pdorerror=$error; } //关闭一切 公共函数_udestruct() { //关闭数据库连接 $this->pdo=null; } },php,sql,pdo,Php,Sql,Pdo,您调用$this->lasta->execute()但您没有字段lasta 试试这个 $this->lastquery->execute(); 我会尝试扩展db\u句柄类,并修改/创建如下方法: <?php // Make sure the db_handle is included and loaded before hand so it can be extended class QueryEngine extends db_handle { pr

您调用
$this->lasta->execute()但您没有字段
lasta

试试这个

$this->lastquery->execute();
我会尝试扩展
db\u句柄
类,并修改/创建如下方法:

<?php
// Make sure the db_handle is included and loaded before hand so it can be extended
class QueryEngine extends db_handle
    {
        private $bind;

        public function connect($host, $username, $password, $database)
            {
                // One note, I removed:
                // $this->DBPrefix = $DBPrefix;
                // $this->CHARSET = $CHARSET;
                // You can add those back in if you want

                try {
                    // Create connection
                    $opts   =   array(  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                                        PDO::ATTR_EMULATE_PREPARES => false,
                                        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
                    $this->pdo  =   new PDO('mysql:host='.$host.';dbname='.$database, $username, $password,$opts);
                }
                catch(PDOException $e) {
                    die($e->getMessage());
                }
            }

        public function query($query, $params = false)
            {
                if(!empty($params))
                    $this->bindVals($params);

                try {
                        if(!empty($this->bind)) {
                                $this->lastquery = $this->pdo->prepare($query);
                                $this->lastquery->execute($this->bind);
                            }
                        else
                            $this->lastquery = $this->pdo->query($query);
                    }
                catch(PDOException $e) {
                    die($e->getMessage());
                }

                return $this;
            }

        public  function fetch()
            {
                while($row = $this->lastquery->fetch())
                    $result[]   =   $row;

                return (!empty($result))? $result : 0;
            }

        private function bindVals($params = false)
            {
                $this->bind =   false;

                if(empty($params) || !is_array($params))
                    return $this;

                $i = 0;
                foreach($params as $values) {
                        $this->bind[':'.$i] =   $values;
                        $i++;
                    }

                return $this;
            }
    }
这会给您一些类似的信息(在MyDB中,显然,表和列对您来说是不同的):


您使用的类库与我的类库类似,因此我添加的是我使用的类的一部分。我测试了这个扩展类,它与我的数据库一起工作,所以希望它与您的数据库一起工作

谢谢,但仍然不起作用:'(我得到一个我得到一个未捕获的异常“PDOException”,带有消息“SQLSTATE[HY000]:一般错误:2053我不知道,伙计,这个脚本是由u-Auctions编写的,他们在论坛的网站上没有修复程序。我到处搜索。你可以在下载它,但在他们的网站上没有支持:'(
<?php
// Make sure the db_handle is included and loaded before hand so it can be extended
class QueryEngine extends db_handle
    {
        private $bind;

        public function connect($host, $username, $password, $database)
            {
                // One note, I removed:
                // $this->DBPrefix = $DBPrefix;
                // $this->CHARSET = $CHARSET;
                // You can add those back in if you want

                try {
                    // Create connection
                    $opts   =   array(  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                                        PDO::ATTR_EMULATE_PREPARES => false,
                                        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
                    $this->pdo  =   new PDO('mysql:host='.$host.';dbname='.$database, $username, $password,$opts);
                }
                catch(PDOException $e) {
                    die($e->getMessage());
                }
            }

        public function query($query, $params = false)
            {
                if(!empty($params))
                    $this->bindVals($params);

                try {
                        if(!empty($this->bind)) {
                                $this->lastquery = $this->pdo->prepare($query);
                                $this->lastquery->execute($this->bind);
                            }
                        else
                            $this->lastquery = $this->pdo->query($query);
                    }
                catch(PDOException $e) {
                    die($e->getMessage());
                }

                return $this;
            }

        public  function fetch()
            {
                while($row = $this->lastquery->fetch())
                    $result[]   =   $row;

                return (!empty($result))? $result : 0;
            }

        private function bindVals($params = false)
            {
                $this->bind =   false;

                if(empty($params) || !is_array($params))
                    return $this;

                $i = 0;
                foreach($params as $values) {
                        $this->bind[':'.$i] =   $values;
                        $i++;
                    }

                return $this;
            }
    }
$dbEngine   =   new QueryEngine();
$dbEngine->connect($host,$username,$password,$database);
print_r($dbEngine->query("select * from users where ID = :0",array("1"))->fetch());
Array
(
    [0] => Array
        (
            [ID] => 1
            [unique_id] => 20150203190700523616
            [username] => tester
            [password] => $2a$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            [first_name] => Ras
            [last_name] => Clatt
            [email] => ras@clatt.com
            [usergroup] => 3
            [user_status] => on
            [reset_password] => $2y$10$xxxxxxxxxxxxxxxxxxx
            [timestamp] => 2015-09-25 08:35:09
        )

)