查询不插入,但也没有给出错误

时间:2014-11-14 11:10:36

标签: php mysql

我收到了这个查询,它没有插入数据库,但它也没有给出错误。

        try {
        $sth = $Db->dbh->prepare("INSERT INTO users (username,password,email,phone,first_name) VALUES (:username,:password,:email,:phone,:firstname)");
        $sth->execute(array(':username' => $username,':password' => $password, ':email' => $email,':phone' => $phone,':firstname'=>$firstname));
    } catch(Exception $e) {
        echo $e->getMessage();
        exit();
    }

enter image description here 我已经尝试通过命令插入查询,它工作正常。网站上还有其他插入查询,这些查询工作也很好。我不确定我在这里做错了什么

1 个答案:

答案 0 :(得分:0)

你能尝试这样的事吗?

try
{
    // Prepare Statement
    if (!($stmt = $mysqli->prepare("INSERT INTO users (username,password,email,phone,first_name) VALUES (?,?,?,?,?)")))
        throw new Exception("Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error);

    // Bind Parms
    if (!$stmt->bind_param("sssss", $username, $password, $email, $phone, $firstname))
        throw new Exception("Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error);

    // Execute Statement
    if (!$stmt->execute())
        throw new Exception("Execute failed: (" . $stmt->errno . ") " . $stmt->error);
}
catch (Exception $ex) {
    exit('Error: '. $ex->getMessage());
}

P.S。关于对您的问题的评论的TiiJ7建议,这两列permranknullable列吗?如果没有,您可能必须在插入行时指定一个值。

此处有更多信息:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php