使用PHP 5.3将数据插入MySQL 5.5

时间:2012-11-27 14:30:52

标签: php

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

3 个答案:

答案 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_stringmysql_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语句中缺少'围绕用户名和密码......控制台不需要它很奇怪,但大多数浏览器都这样做......