PHP -> 如何在注册查询中绑定(bind)多个值?

标签 php mysql pdo prepared-statement bindparam

还有其他几个类似的问题,但我没有正确理解它们,也不知道如何复制和更改代码来为我工作。

我让它工作,检查用户是否已经存在,但如果他已经存在,则应该插入用户,这就是我面临的问题。因为要插入用户名和密码,所以我不知道如何将“:feldwert”(如下所示)绑定(bind)到 $username 和 $password。用户名检查只需要一个用户名。

代码:

try {
    $db = new PDO("mysql:dbname=todo;host=localhost",
                        "root",
                        "");
    }catch (PDOException $e) {
        echo "Fehler: " . htmlspecialchars($e->getMessage());
        exit();
    }


    if (isset($_POST["username"]) && isset($_POST["password"]))
    {
    $username = $_POST["username"];
    $password = $_POST["password"];

    $sql = "SELECT username FROM user WHERE username = :feldwert";
    $kommando = $db->prepare($sql);
    $wert = $username;
    $kommando -> bindParam(':feldwert', $wert);
    $kommando -> execute();
    if($kommando->rowCount() > 0){
        echo "exists!";
    } else {
        echo "non existant";
        $sql = "INSERT INTO user VALUES ('$username', '$password');";
        $kommando = db->prepare($sql);
        $wert = ...
        $kommando -> bindParam(':feldwert', $wert);
        $kommando -> execute();
    }
}

最佳答案

您可以多次调用bindParam,每个要绑定(bind)的参数调用一次:

$sql = "INSERT INTO user VALUES (:username, :password);";
$kommando = db->prepare($sql);
$kommando -> bindParam(':username', $username);
$kommando -> bindParam(':password', $password);
$kommando -> execute();

关于PHP -> 如何在注册查询中绑定(bind)多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54802614/

相关文章:

mysql - 在MySql表中同时插入/更新?

mysql - SQL 结合Where 和Select

mysql - 在SQL EXPLAIN中,可能的键和键,我选择PK之一还是全部?

php - php 中的 PDO 连接错误

php - 如何检查wordpress自定义表是否为空

php - 更新时出现 SQL 错误

javascript - 使用谷歌分析 API - 'Getting Started' 教程

php - preg_replace 一个没有跟随特定字符的字符

mysql - PDO 语法错误,SQLSTATE[42000]

php - PDO 比较两个不同格式的数组