使用PDO将数据插入MySQL数据库

时间:2014-03-13 04:07:35

标签: php mysql database pdo

我是PHP和MySQL的新手,我正在尝试将数据插入到数据库中,该数据库工作正常,直到我尝试使用PDO的prepare方法。它返回catch错误,我无法弄清楚为什么 - 我还想知道使用未命名的占位符或命名占位符是否是最佳做法?

用户名和密码变量在我的代码中先前定义,并使用$_POST从用户捕获数据。

编辑:getMessage()错误显示SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username' cannot be null

if (!empty($user) && (!empty($password)) ) {
    try {
        $results = $db->prepare("INSERT INTO user_info (username, pass) VALUES (?,?)");
        $results->bindParam(1,$username);
        $results->bindParam(2,$password);
        $results->execute();
    } catch (Exception $e) {
        echo "Could not insert data in to the database";
    }
}

2 个答案:

答案 0 :(得分:0)

您有两个不同的变量名称。您正在检查$user以确保它不是empty(),但是您告诉绑定$username第一个参数。您只需要重命名其中一个以匹配另一个。

答案 1 :(得分:0)

试试这个。

if (!empty($user) && (!empty($password)) ) {
try {
    $results = $db->prepare("INSERT INTO user_info (username, pass) VALUES (?,?)");
    $results->bindParam(1,$user);
    $results->bindParam(2,$password);
    $results->execute();
} catch (Exception $e) {
    echo "Could not insert data in to the database";
}

}

请先尝试自己找错误。