0

我在使用 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、用户名和密码。

4

3 回答 3

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_* 函数将很快被弃用。

于 2012-11-27T14:34:29.307 回答
0

记住在将数据插入数据库之前使用mysqli_real_escape_string或转义数据。mysql_real_escape_string

正如其他人所说,使用mysqli_*而不是mysql_*

于 2012-11-27T14:43:33.117 回答
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 语句中缺少用户名和密码......这很奇怪控制台不需要它,但大多数浏览器都需要......

于 2015-10-02T19:03:23.770 回答