我正在制作用户表。
表格如下:
CREATE TABLE `a9025688_chat`.`users` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM
我使用的PHP代码是:
<?php
$hostname_localhost ="***";
$database_localhost ="***";
$username_localhost ="***";
$password_localhost ="***";
$localhost = mysql_connect($hostname_localhost,$username_localhost,$password_localhost)
or
trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_localhost, $localhost);
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "INSERT INTO `a9025688_chat`.`users` (
`id` ,
`username` ,
`password`
) VALUES ( NULL , '$username', '$password'
)";
$result = mysql_query($sql);
if (!$result) die ("db access failed");
?>
但是,当我尝试创建用户时,会创建其中两个用户。这里有什么我想念的吗?
答案 0 :(得分:0)
为什么要为ID插入null?这可能是它插入两行的原因。您永远不应该为主键传入null进行插入。
答案 1 :(得分:0)
您的代码没有问题。也许是插入后重新发布数据(或刷新页面)的东西。检查您可能的javascripts或浏览器插件。
答案 2 :(得分:0)
请勿使用mysql_*
个功能!
永远不要直接使用$_POST
中的值而不进行过滤和准备。
使用PDO有很多原因,包括安全性。有关更深入的信息,请参阅this tutorial
以下是another example如何使用PDO
如果您需要一些帮助,可以使用易于使用的包装类:PDO Wrapper