微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – PDO多查询“SQLSTATE [HY000]:常规错误”

我还在学习PDO,所以我可能会错过一些东西,但基本上我是想在一个表中插入一行,然后选择生成的id.

我不确定它是否同意一个pdo语句中的查询.这是我用来执行sql代码.

public function ExecuteQuery($sql, $params = array())
    {

        if($this->_handle == null)
            $this->Connect();

        $query = $this->_handle->prepare($sql);

        foreach($params as $key => $value)
        {
            if(is_int($value)){
                $query->bindValue(':'.$key, $value, \PDO::ParaM_INT);
            }else if(is_bool($value)){
                $query->bindValue(':'.$key, $value, \PDO::ParaM_BOOL);
            }else if(is_null($value)){
                $query->bindValue(':'.$key, $value, \PDO::ParaM_NULL);
            }else{
                $query->bindValue(':'.$key, $value, \PDO::ParaM_STR);
            }
        }

        $query->execute();

        $x = $query->fetchAll(\PDO::FETCH_ASSOC);

        var_dump($x);

        return $x;
    }

函数数据库类的一部分,$this-> _handle是PDO对象.

public function Connect()
    {
        try {
          $this->_handle = new \PDO('MysqL:host='.$this->_host.';dbname='.$this->_database, $this->_username, $this->_password);
          $this->_handle->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION ); 
        }
        catch(PDOException $e) {
            echo $e->getMessage();
        }
    }

我正在运行的sql是这样的:

INSERT INTO `users` (`Username`, `Password`, `PasswordSalt`, `Email`, `IsAdmin`, `LoginAttempts`, `LastLogin`, `LastLoginAttempt`, `Created`) VALUES (:username, :password, :passwordsalt, :email, :isadmin, :loginattempts, :lastlogin, :lastloginattempt, :created); SELECT LAST_INSERT_ID() as 'id'

用户已创建并位于users表中,但之后出现错误.

任何人都可以看到我做错了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐