无法将 php 密码字段上传到 phpmyAdmin
Posted
技术标签:
【中文标题】无法将 php 密码字段上传到 phpmyAdmin【英文标题】:unable to upload the php password field into phpmyAdmin 【发布时间】:2019-02-17 20:24:00 【问题描述】:我有一个 html 表单,它接受用户的名字、姓氏、用户名和密码,我正在将值上传到我的本地 phpMyAdmin 但我无法上传密码字段进入数据库。
这是我的 HTML 代码
<input type="text" name="first" required placeholder="John*">
<input type="text" name="last" required placeholder="Doe*">
<input type="text" name="username" id="vname" placeholder="jondoe11*" />
<input type="password" name="pass" id="vpassword" placeholder="*****" />
和我的 php 文件
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "credentials";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
die("Connection failed: ");
else
echo "connnected";
$first = $_POST['first'];
$last = $_POST['last'];
$user = $_POST['username'];
$password = $_POST['pass'];
$sql =$conn->prepare('INSERT INTO users (username, password, first, last) values(?,?,?,?)');
$sql->bind_param('ssss', $user,$password,$first,$last);
$val = $sql->execute();
?>
我可以成功输入除密码字段之外的所有值。 请帮忙
【问题讨论】:
有时你在mysql中密码字段的数据类型可能与你传递值的数据类型不匹配。当我为电话号码保留一个整数字段并传递一个字符串值时,这发生在我身上。确保您的数据类型相互匹配 您好,能否请您提供有关您的密码字段数据库类型的信息。或者您的数据库的 SQL 以查看基础结构。 只需使用 $user_password 而不是 $password 。更新代码:$sql->bind_param('ssss', $user,$user_password ,$first,$last);
表单和数据库中的数据类型匹配。我的数据库中密码字段的数据类型是longtext。
@AshokGujjar 谢谢。我将 $password 更改为 $user_password ,它工作得很好。
【参考方案1】:
您的数据库连接具有变量$password
,并且还访问了相同的数据传递变量。我将数据变量更改为$user_password
。希望这对你有用。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "credentials";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
die("Connection failed: ");
else
echo "connnected";
$first = $_POST['first'];
$last = $_POST['last'];
$user = $_POST['username'];
$user_password = $_POST['pass'];
$sql =$conn->prepare('INSERT INTO users (username, password, first, last) values(?,?,?,?)');
$sql->bind_param('ssss', $user,$user_password,$first,$last);
$val = $sql->execute();
?>
【讨论】:
谢谢。这是工作。但我不明白这背后的逻辑。为什么 $password 不工作而 $user_password 工作? $password 是关键字吗? 您已经为您的数据连接初始化了$password
变量,该变量被传递给函数/构造函数 mysqli()
。重用 db 连接变量是一种不好的做法。我不确定您的代码为什么不起作用。但我建议您不要使用变量$password
,因为它是数据库连接的一部分。如果您发现此答案有帮助,请点赞并勾选正确。谢谢。
我强烈建议您使用常量define() 来连接数据库,而不是使用变量。像这样定义('SERVER', 'localhost');等等。以上是关于无法将 php 密码字段上传到 phpmyAdmin的主要内容,如果未能解决你的问题,请参考以下文章
php 将Gravity表单文件上传字段映射到ACF用户头像图像字段(Wordpress)
php 将复选框自定义元字段添加到媒体上传器wordpress
来自 PHP 的 crypt() 的 MD5 哈希密码是不是可移植到 Django 密码字段?