gpt4 book ai didi

php - 如何使用 InsertInto 将清理后的用户输入存储在数据库中

转载 作者:行者123 更新时间:2023-11-29 15:46:03 26 4
gpt4 key购买 nike

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

谢谢!

最佳答案

现在完全可以工作了,将以下代码保存为 php 文件并运行它。

我更改了以下内容。

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


$conn = new PDO("mysql:host=localhost;dbname=nome", "nome", "password");
$sql = "SELECT * FROM users";
$query = $conn->query($sql);
$result = $query->fetchAll(PDO::FETCH_ASSOC);

var_dump($result);

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

$sql = "INSERT INTO users (username, password) VALUES (:username, :password)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":username", $_POST["username"], PDO::PARAM_STR);
$stmt->bindParam(":password", $_POST["password"], PDO::PARAM_STR);
$stmt->execute();
}




?>

<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>

关于php - 如何使用 InsertInto 将清理后的用户输入存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com