【发布时间】:2016-08-31 19:45:50
【问题描述】:
在我的 MySQL 数据库中,在实际数据行之前插入了一个空白行。这是为什么呢?
这是我的代码:
<?php
define('DB_NAME','my_db_name');
define('DB_USER','my_db_user');
define('DB_PASSWORD','my_db_pass');
define('DB_HOST','localhost');
$link = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if (!$link){
die('Could no connect'.mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if(!$db_selected){
die('Can\'t no connect'. DB_NAME .':'.mysql_error());
}
$name = $_POST['name'];
$sql ="INSERT INTO demo (name) VALUES ('$name')";
if(!mysql_query($sql)){
die('Error:'.mysql_error());
}
mysql_close();
?>
<html>
<body>
<form action="demo2.php" method="post">
<input id="name" name="name" type="text" placeholder="" class="form-control input-md" required="">
<input type="submit" class="btn btn-success" value="Add Client">
</form>
</body>
</html>
这是我的 MySQL 数据库结构:
这是在“gunk”名称数据条目之前有一个空白条目的表格:
我已经花时间将此问题隔离为一个表单输入,其中一个成功的数据库连接并添加了我的数据,只是在它之前有一个空白行。
为什么在我的数据库中的新数据行之前插入一个空白行?
【问题讨论】:
-
上面的代码只会插入一行——如果你得到两行,那么上面的代码会被调用两次。很可能是因为您不必费心检查表单是否已提交。因此,代码为原始 GET 运行一次,然后为表单提交 POST 再次运行。请注意,您很容易受到sql injection attacks
-
每次您在 mew 代码中使用 the
mysql_数据库扩展时一只小猫在世界某处被勒死 它已被弃用并且已经存在多年并且在 PHP7 中永远消失了。如果您只是学习 PHP,请花精力学习PDO或mysqli数据库扩展。 Start here