【发布时间】:2019-07-14 15:15:05
【问题描述】:
我想将一些用户的输入变量存储到 mysql 中。但是,它们存储为 :username 和 :password 而不是用户的输入。
$username = $_POST['username'];
$password = $_POST["password"];
$conn = new PDO("mysql:host=localhost;dbname=nome", "nome", "password");
$sql = "SELECT * FROM users";
$query = $conn->query($sql);
$result = $query->fetchAll(PDO::FETCH_ASSOC);
$sql = "SELECT * FROM users WHERE username = :username AND password = :password";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":username", $_POST["username"]);
$stmt->bindParam(":password", $_POST["password"]);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
if($username && $password){
$sql = "INSERT INTO users (username, password) VALUES (':username', ':password')";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":username", $_POST["username"]);
$stmt->bindParam(":password", $_POST["password"]);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
}else{
print "Dati non corretti";
};
<h1> Login Form </h1>
<form action="?" method="post"> Name
<input name="username" value="" />
Password
<input name="password" value=""/>
<input type="submit" name="my_form_submit_button"
value="Login" />
</form>
当我检查 phpMyAdmin 表时,变量存储为:用户名和:密码。 我想将它们存储为用户的输入。例如,如果用户输入的用户名是 Mark,我想将其存储为 Mark,而不是 :username。
谢谢!
【问题讨论】:
-
你能不能把
':username'换成:username再试一次。'将其转换为字符串参数,因此 bindParam 应该跳过它。 -
或者你可以使用
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";和$stmt->bindParam(1, $_POST["username"]); -
@Cotur 在这种情况下,存储的值为“0”
标签: php mysql validation input