PHP:insert into创建2行
我正在制作一张用户表 桌子是这样做的:PHP:insert into创建2行,php,mysql,Php,Mysql,我正在制作一张用户表 桌子是这样做的: 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
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");
?>
为什么要为ID插入空值?这可能就是让它插入两行的原因。绝不能在插入时为主键传入null。给定的代码没有问题。插入后,可能会重新发布数据(或刷新页面)。检查可能的Java脚本或浏览器加载项。请不要使用mysql.*
函数
未经筛选和准备,切勿直接使用$\u POST
中的值
出于许多原因使用PDO,包括安全性。有关详细信息,请参阅
下面是如何使用PDO的示例
如果您需要一些入门帮助,甚至还有一个易于使用的包装类:这就是全部代码吗?这就是全部php+mysql代码。您的代码中有SQL注入,这是一个严重的安全问题。我相信是这样。这个人需要抛弃他们的代码,重新开始。是的,你是对的。我一直在推迟整理安全问题,但我会先这样做,问题可能会自行解决!当我第一次开始编写PHP时,我开始使用mysql_*函数,它让我陷入困境,并引发了各种各样的问题。当我摆脱这一点时,事情真的变得容易了。试试PDO包装器。对于抽象层来说,它是一个很好的抽象层:)但并非所有的文档都是完整的。您需要从内部查看该类,以了解它的全部功能。不过,基础很简单。