Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在执行两次SQL插入查询_Php_Mysql_Sql Insert - Fatal编程技术网

Php 正在执行两次SQL插入查询

Php 正在执行两次SQL插入查询,php,mysql,sql-insert,Php,Mysql,Sql Insert,我在这里束手无策。我在所有不同的浏览器中都尝试过,但仍然得到相同的触发错误消息注意:键'PRIMARY'的条目重复但是,它仍然插入到数据库中。我认为页面同时执行了两次。代码永远不会到达存储会话数据的块。如有任何见解,将不胜感激 <?php if($_POST[submit]) { $usernam

我在这里束手无策。我在所有不同的浏览器中都尝试过,但仍然得到相同的触发错误消息
注意:键'PRIMARY'的条目重复
但是,它仍然插入到数据库中。我认为页面同时执行了两次。代码永远不会到达存储会话数据的块。如有任何见解,将不胜感激

            <?php               
                if($_POST[submit])
                {                   
                    $username = "";
                    $password = "";
                    $hostname = "";
                    $dbname = "";

                    //connection to the database:
                    $db = mysqli_connect($hostname, $username, $password, $dbname, '3306')
                    or die("Unable to connect to MySQL");

                    $id = !empty($_POST[id]) ? "'$_POST[id]'" : "NULL";
                    $fname = !empty($_POST[fname]) ? "'$_POST[fname]'" : "NULL";
                    $lname = !empty($_POST[lname]) ? "'$_POST[lname]'" : "NULL";    

                    $sql = "INSERT INTO Table(id, fname, lname)
                                VALUES ($id, $fname, $lname)";

                    $result = $db->query($sql) OR trigger_error($db->error);

                    if ($result && $db->affected_rows > 0)
                    {
                        // store session data
                        $_SESSION['fileid']=$id;
                        echo 'Creating file '.$id.'<br/>
                            <a href = "partTwo.php" class="button">Continue</a>';
                    }
                    else
                        echo "No changes made.";
                }               
                else 
                    echo '<form method="post" action="createFile.php">
                            <div><span class = "formlabel">File number:</span><input type="Text" name="id"></div>
                            <div><span class = "formlabel">First name:</span><input type="Text" name="fname"></div>
                            <div><span class = "formlabel">Last name:</span><input type="Text" name="lname"></div>
                            <input class="submit" type="Submit" name="submit" value="Submit">
                        </form>';
            ?>

使用
if(设置($\u POST[submit])代替此
if(设置($\u POST[submit])
我已经编辑了您的代码,现在它运行良好:)


您是否定义了$username=“”$密码=”$主机名=”$dbname=“”;在Scripies中,它们是在脚本中定义的。您是否尝试在插入之前和插入之后添加日志注释?这是为了查看插入是否已被调用两次..清除缓存..可能是id正在从缓存中重复..并尝试硬编码值(而不是表单)以查看插入是否可以正常工作well@Sanath我只是试着硬编码这些值。仍然存在重复输入错误的问题。@johnnyj oh..好的..让我再次检查whole@johnnyj是不是每次$id=!空($\u POST[id])?“$\发布[id]”:“空”;ECHO it(基本上调试)@johnnyj你能检查一下你表中的值吗..比如空白或空..如果清除了它,然后检查..并让我知道情况谢谢你的尝试,但这里没有解决问题。
     <?php               

        //connection to the database:

                            $username = "";
                            $password = "";
                            $hostname = "";
                            $dbname = "";
                            $db = mysqli_connect($hostname, $username, $password, $dbname, '3306')
                            or die("Unable to connect to MySQL");

                        if(isset($_POST[submit]))
                        {                   

                           if(($id = !empty($_POST['id']) || $fname = !empty($_POST['fname']) || $lname = !empty($_POST['lname']))
    {
       echo "error msg.";
    }else{
    $id = "";
    $fname = "";
    $lname = "";   

                            $sql = "INSERT INTO Table(id, fname, lname)
                                        VALUES ($id, $fname, $lname)";

                            $result = $db->query($sql) OR trigger_error($db->error);
}

                            if ($result && $db->affected_rows > 0)
                            {
                                // store session data
                                $_SESSION['fileid']=$id;
                                echo 'Creating file '.$id.'<br/>
                                    <a href = "partTwo.php" class="button">Continue</a>';
                            }
                            else
                                echo "No changes made.";
                        }               
                        else 
                            echo '<form method="post" action="createFile.php">
                                    <div><span class = "formlabel">File number:</span><input type="Text" name="id"></div>
                                    <div><span class = "formlabel">First name:</span><input type="Text" name="fname"></div>
                                    <div><span class = "formlabel">Last name:</span><input type="Text" name="lname"></div>
                                    <input class="submit" type="Submit" name="submit" value="Submit">
                                </form>';
                    ?>