无法将 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-&gt;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 表单的输入字段显示数据库用户名和密码

来自 PHP 的 crypt() 的 MD5 哈希密码是不是可移植到 Django 密码字段?

上传到 PHP 服务器后,录制的 iPhone X 视频将无法播放

无法将 pdf 文件上传到 mysql 数据库并使用 PHP 检索它?