我的代码没有插入自定义对象


My code is not inserting custom object

我正在使用PDO,我想使用可以提供自定义对象/类作为isnert参数的功能插入。在catch块中不会抛出错误。如果我尝试从表中输入原始插入字段,那么它工作得很好。

这是我的自定义类,我想创建一个实例,然后使用PDO插入

class User {
    public $email;
    public $username;
    public $fname;
    public $sname;
    function __construct($e,$u,$fn,$sn) {
        $this->email = $e;
        $this->username = $u;
        $this->fname = $fn;
        $this->sname = $sn;
    }
}
下面是我用来尝试插入 的代码
try{
    $DBH = new PDO("mysql:host=localhost;dbname=mydb", "myuser", "mypass");
    $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $user = new User('the email','the username','the fname','the sname');
    $STH = $DBH->("INSERT INTO User (email, username, fname, sname) value (:email, :username, :fname, :sname)");
    $STH->execute((array)$user);
}
catch(PDOException $e) {
    echo $e->getMessage();
}

您可能希望先绑定值,然后再调用execute。http://www.php.net//manual/en/pdostatement.bindparam.php

例子
$STH = $DBH->prepare("INSERT INTO User (email, username, fname, sname) value (:email, :username, :fname, :sname)");
$STH->bindParam(':email', $user->email);
// and so on
$STH->execute();