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>';
?>