我想将一些用户的输入变量存储到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表时,变量存储为:username和:password。 我想将它们存储为用户的输入。例如,如果用户的用户名输入是Mark,我想将其存储为Mark,而不是:username。
谢谢!
答案 0 :(得分:0)
现在完全可以正常工作,将以下代码另存为php文件并运行。
我更改了以下内容。
':username'
到:username
,并且从':password'
到:password
,因为'
单引号将内部转换为字符串,并且{{1} }可以跳过它。bindValue
从?
移至<form action"?"
,它定义了请求页面本身。<form action""
语句以检查在将值插入数据库表之前是否存在任何POST请求。if($_POST)
,我添加了bindParam
作为最后一个变量,以发送函数来定义值类型。PDO::PARAM_STR