如何使用InsertInto

时间:2019-07-14 15:15:05

标签: php mysql validation input

我想将一些用户的输入变量存储到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。

谢谢!

1 个答案:

答案 0 :(得分:0)

现在完全可以正常工作,将以下代码另存为php文件并运行。

我更改了以下内容。

  1. INSERT sql的值从':username':username,并且从':password':password,因为'单引号将内部转换为字符串,并且{{1} }可以跳过它。
  2. bindValue?移至<form action"?",它定义了请求页面本身。
  3. 在php代码中,我添加了<form action""语句以检查在将值插入数据库表之前是否存在任何POST请求。
  4. 最后一个更改是在if($_POST),我添加了bindParam作为最后一个变量,以发送函数来定义值类型。
PDO::PARAM_STR