我已经在MySQL表中添加了一列,但没有显示任何数据



当我通过PHP表单插入数据时,我成功地在MySQL的表中添加了一列,电子邮件和密码已成功添加,但用户名没有成功。

当我显示表格时,"用户名"表格仍然是空白的。

这是PHP形式:

<html>   
<head>    
<title>Register</title>    
</head>    
<body>
<?php
if(isset($_POST['add']))
{
$dbhost = 'localhost:3036';
$dbuser = 'xxxx';
$dbpass = 'xxxxxxx';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
    if(! get_magic_quotes_gpc() )
    {
   $email = addslashes ($_POST['email']);
   $password = addslashes ($_POST['password']);
   $usernames = addslashes ($_POST['usernames']);
}
else
{
   $email = $_POST['email'];
   $password = $_POST['password'];
   $usernames = $POST['usernames'];
}
$sql = "INSERT INTO users (email,usernames,password) VALUES ('$email', '$usernames',   ENCRYPT('$password'))";
mysql_select_db('dbname');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfullyn";
mysql_close($conn);
}
else
{
?>
 <form method="post" action="<?php $_PHP_SELF ?>">
 <table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Your Email @foo.com</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td width="100">Your Username</td>
<td><input name="usernames" type="text" id="usernames"></td>
</tr>
<tr>
<td width="100">Your Password</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="add" type="submit" id="add" value="Register">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>

我使用命令行添加了用户名列:

 ALTER TABLE tbname ADD usernames VARCHAR(55) NOT NULL;

它已添加,但当用户注册时,他的用户名未显示。仅添加电子邮件和加密密码。

任何帮助将不胜感激。

更改此行 $usernames = $POST['usernames'];

将其更改为 $usernames = $_POST['usernames'];

首先不要使用 mysql,使用 mysqli/pdo。关闭魔术引号,如果您坚持使用 mysql(不要),请将addslashes()切换到 mysql_real_escape_string()

而且您拥有:

$usernames = $POST['usernames'];

缺少_

$usernames = $_POST['usernames'];

但是您的数据库模式(即 NOT NULL )应该注意没有空数据,因此还要确保您的选择是正确的。

不要使用 mysql_* 函数,至少要转义所有用户输入。

改变

$usernames = $POST['usernames'];

$usernames = $_POST['usernames'];

开发启用display_errors时,您可以轻松发现此错误:

error_reporting(E_ALL);

最新更新