MySQL查询的PDO错误

Sha*_*nes 0 php mysql pdo

我一直盯着下面的代码超过一个小时,任何看不到任何问题.

    public function add($data){
        $sql = 'INSERT INTO ' . $this->name . '(fbid, userAccessToken, name, location, story, gender, email, email_md5, referrer, date, use, optin) VALUES (:fbid, :userAccessToken, :name, :location, :story, :gender, :email, :email_md5, :referrer, :date, :use, :optin)';

        $mysqldate = date('Y-m-d G:i:s');
        $result = $this->dbh->prepare($sql);

        if($result->execute(array(
            ':fbid' => $data['fbid'],
            ':userAccessToken' => $data['userAccessToken'],
            ':name' => $data['name'],
            ':location' => $data['location'],
            ':story' => $data['story'],
            ':gender' => $data['gender'],
            ':email' => $data['email'],
            ':email_md5' => md5($data['email']),
            ':referrer' => $data['referrer'],
            ':date' => $mysqldate,
            ':use' => $data['use'],
            ':optin' => $data['optin']
        ))){

            $return = $this->dbh->lastInsertId();  
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误是

PHP警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'use,optin'附近使用正确的语法VALUES('517371547','no-auth','Shane Jones','Manchest'在第1行

Pek*_*ica 8

USEmySQL中保留字.

您需要将其放入反引号中,或使用其他列名称.