当我通过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;
它被添加但是当用户注册时,他的用户名没有显示。只添加了电子邮件和加密密码。
非常感谢任何帮助。
答案 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);