php - PHP -> 如何在注册查询中绑定多个值?
问题描述
还有其他几个类似的问题,但我没有正确理解它们,也不知道如何复制和更改代码以适合我。
我让它工作,检查用户是否已经存在,但如果他存在,用户应该被插入,这就是我面临的问题。因为要插入用户名和密码,所以我不知道如何将“:feldwert”(如下所示)绑定到 $username AND $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
多次调用,为要绑定的每个参数调用一次:
$sql = "INSERT INTO user VALUES (:username, :password);";
$kommando = db->prepare($sql);
$kommando -> bindParam(':username', $username);
$kommando -> bindParam(':password', $password);
$kommando -> execute();
推荐阅读
- django - CASCADE 究竟是如何与 Django 中的多对多字段一起工作的
- python - 如何在 MPLFinance 图上设置 ylim 和其他图形参数
- cassandra - 在 Cassandra 中过滤主键
- r - 在R中的url中读取数据
- java - period.getDays() 在android中每次返回0
- r - 在大型 RasterStack 上使用 writeRaster 时出错
- nuxt.js - 使用 NuxtJs 将 Body 设置为 100% 高度
- latex - r-markdown beamer 演示文稿中的标题页重复
- swift - 如何在 iOS 上禁用 IMA UI
- swift - 集合视图单元格 ImageView 不适合 Swift 中的屏幕