无法使用INSERT INTO将数据插入到mysql表中

时间:2013-08-06 19:37:07

标签: php mysql html-table wamp

在WAMP和phpMyadmin中,我使用此表

创建了一个名为PROJECT的数据库
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(25) NOT NULL,
`password` varchar(25) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

我正在尝试测试以下代码:

<?php
$con=mysql_connect ("localhost","******","");
mysql_select_db("project",$con);
@$a=$_POST['txt1'];
@$b=$_POST['txt2'];
if(@$_POST['inser'])
{
 $s="INSERT INTO users VALUES ('','$a','$b')";
echo "Your Data Inserted";
 mysql_query ($s);
}
$con=mysql_connect ("localhost","******","");
mysql_select_db ("project",$con);
if(@$_POST ['sel'])
{
echo $ins=mysql_query ("select * from users");
echo "<table bgcolor=skyblue border='2'>
<tr>
<th colspan=4>Display details</th></tr>
<tr>
<th>ID</th>
<th>Username</th>
<th>Password</th>
</tr>";
while ($row=mysql_fetch_array ($ins))
{
echo "<tr>";
echo  "<th>".$row ['id']."</th>";
echo  "<th>".$row ['username']."</th>";
echo  "<th>". $row ['password']. "</th>";

echo "</tr>";
}
}
echo "</table>"
?>
<html>
<head>
</head>
<body bgcolor="pink">
<table bgcolor="skyblue" border="2">
<form method="post">
<tr>
<td colspan=2 align="center">Details</td>
</tr>
<td>Username</td><td><input type="text" name="txt1"></td>
</tr>
<tr>
<td>Password</td><td><input type="text" name="txt2"></td>
</tr>
<tr>
<td><input type="submit" name="inser" value="Insert"></td>
<td><input type="submit" name="sel" value="Select"></td>
</tr>
</form>
</table>
</body>
</html>

当我在数据库中手动插入用户名和密码并单击“选择”按钮时,我就有了记录。当我尝试使用上面的INSERT INTO插入记录时,无法添加记录。我有消息您的数据插入,但数据库中没有记录。我尝试了没有字段ID,它完美无缺。我也尝试过没有AUTO INCREMENT但没有结果。那ID有什么问题?

4 个答案:

答案 0 :(得分:3)

试试这个

    if(isset($_POST['inser']))
    { 
    $s="INSERT INTO users (`username` , `password` )VALUES ('$a','$b')";
       mysql_query($s);
    echo "Your Data Inserted";

答案 1 :(得分:0)

$ s =“INSERT INTO users VALUES('','”。$ a。“','”。$ b。“')”;

你必须插入。在查询中工作。试试吧。

答案 2 :(得分:0)

$s="INSERT INTO users VALUES ('','$a','$b')";

应该是这样的:

$s="INSERT INTO users VALUES ('$a','$b')";

答案 3 :(得分:0)

首先,您应该尝试更安全的方法,只是为了确保只插入要插入的数据。例如:

$test=mysql_query("insert into user(username,password) values('$a','$b')");

然后检查您是否有任何错误

if(!$test || mysql_error())
     echo "Error";
else
     echo "Inserted";

注意:请注意, id 不会出现,因为它是自动递增的,并且由于是自动递增的,所以您不会也不应该插入值否则你将面临错误。

编辑:我忘了提及如果你确实喜欢(values('','$a','$b'))它实际上是不必要的,目前还不确定,但我认为它确实会给你一个错误,因为你是在字段中插入''== null =='0'。