我在使用PHP 5.3将数据从表单插入MySQL 5.5数据库时遇到问题 我能够插入我的数据,但是我得到重复的插入。
这是我的代码:
<?php
$host ="localhost";
$user ="root";
$password ="password";
$database ="database1";
$table ="users";
mysql_connect("$host","$user","$password")or die(mysql_error());
mysql_select_db("$database")or die(mysql_error());
$mysql = "INSERT INTO $table (username,password)
VALUES('$_POST[username]','$_POST[password]')";
if(!mysql_query($mysql)) die(mysql_error());
echo"Data inserted";
mysql_close();
?>
我收到的错误消息是
"undefined index:username"
"undefined index:password"
我的表格字段是三个ID,用户名和密码。
答案 0 :(得分:0)
您收到notice
错误。
检查$_POST['username']
是否存在
if(isset($_POST[username]) && isset($_POST[password])){
$host ="localhost";
$user ="root";
$password ="password";
$database ="database1";
$table ="users";
mysql_connect("$host","$user","$password")or die(mysql_error());
mysql_select_db("$database")or die(mysql_error());
$mysql = "INSERT INTO $table (username,password)
VALUES('$_POST[username]','$_POST[password]')";
if(!mysql_query($mysql)) die(mysql_error());
echo"Data inserted";
mysql_close();
}
您正在重复插入,因为您没有检查数据库中是否已存在用户名。在执行INSERT
之前,检查用户名是否已存在于数据库中,如果已存在,则不允许插入。
使用mysqli或pdo连接数据库。 mysql_ *函数很快就会被弃用。
答案 1 :(得分:0)
在将数据插入数据库之前,请记住使用mysqli_real_escape_string
或mysql_real_escape_string
转义数据。
正如其他人所说,使用mysqli_*
代替mysql_*
答案 2 :(得分:0)
我记得5.5这有点紧张......试试这个
$user=_$POST['username'];
$pass=_$POST['password'];
$sql="INSERT INTO $table (username, password) VALUES ('$user', '$pass')";
$result = $conn->query($sql);
if ($result)
{
echo "Entered data successfully";
}
else
{
echo "data not posted";
}
mysql_close($conn);
?>
但是使用5.5主要是我在_POST语句中缺少'围绕用户名和密码......控制台不需要它很奇怪,但大多数浏览器都这样做......