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

时间:2012-10-12 07:57:35

标签: php 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 successfully\n";
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;

它被添加但是当用户注册时,他的用户名没有显示。只添加了电子邮件和加密密码。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

你有:

$usernames = $POST['usernames'];

缺少_

$usernames = $_POST['usernames'];

但是你的数据库架构(即NOT NULL)应该注意不要有空数据,所以也要确保你的选择是正确的。

答案 2 :(得分:0)

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

变化

$usernames = $POST['usernames'];

$usernames = $_POST['usernames'];

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

error_reporting(E_ALL);