2014-06-18 203 views
0

我的PHP代码和数据库有一点问题。每次刷新页面时,当我打开页面时,新的空行也被添加到数据库中,这是什么问题?PHP - 刷新页面刷新记录

<?php 
if (isset($_POST)) { 
    $con = mysql_connect("localhost","dwarfmaster",""); 

    if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("my_dwarfmaster", $con); 

    $name = $_POST['name']; 
    $release_year = $_POST['release_year']; 
    $publisher = $_POST['publisher']; 
    $genre = $_POST['genre']; 

    $sql = "INSERT INTO gamelist (name, release_year, publisher, genre) 
     VALUES 
     ('$_POST[name]','$_POST[release_year]', 
     '$_POST[publisher]','$_POST[genre]')"; 

    if (!mysql_query($sql, $con)) { 
     die('Error: ' . mysql_error()); 
    } 

    echo "1 record added"; 

    mysql_close($con); 
} 
?> 
+1

我要胡乱猜测,说你在同一个页面的形式。对(提交)提交按钮使用'isset()'。 –

+3

[请不要在新代码中使用'mysql_ *'函数](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[红框](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 **您也可以[SQL注入](http://stackoverflow.com/q/60174)** –

+0

检查'isset'和'empty' $ _POST' – Bora

回答

0

或简单地改变

if (isset($_POST)) 

if (isset($_POST['name'])) 
0

您可以添加以下代码 - :(!空(array_filter($ _ POST)))

如果{。 。从表单中将数据插入数据库 的代码。 。 }

1

检查,如果请求方法是POST,使用:

if ($_SERVER['REQUEST_METHOD'] == 'POST') 

if(isset($_POST))将始终返回true

0
if (isset($_POST)) 

将始终返回true!

尝试

if (isset($_POST['name'])&&isset($_POST['release_year']) 
      &&isset($_POST['publisher'])&&isset($_POST['genre'])) 

不是每次都检查每一个变量!