Php / MySQL:无法仅插入一行

时间:2018-04-09 02:36:50

标签: php mysql sql database

我正在尝试创建一个页面,允许用户输入他将执行特定任务所需的步骤。但是,每当我提交一个步骤时,多个类似的记录都会存储在mysql数据库中。因此,如果我输入"执行此操作",在我的mysql数据库中,将使用相同的数据存储两条记录 这是我的代码......

<?php

$conn = new mysqli("localhost", "root","","KFC");
if(isset($_POST['Submit_btn']))
{
  session_start();
    $var_value = $_SESSION['R_ID'];

    $Name= mysqli_real_escape_string($conn, $_POST['Step']);

    $sql= "INSERT INTO `step`(`Step`, `R_ID`) VALUES ('$Name','$var_value')";

    mysqli_query($conn,$sql);
    if (!mysqli_query($conn,$sql))
  {
  echo("Error description: " . mysqli_error($conn));
  }
}
mysqli_close($conn);
?>
<html>
<body>
<div id="bodyContent">
<h1> Submit Steps </h1>
</div>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('garden');
$result = mysql_query("SELECT * FROM step WHERE R_ID='$var_value'");
$rows = mysql_num_rows($result);
echo "So far you have submitted " . $rows . " steps for your recipe.";
?>
<form method="post">
<table>
<tr>
<td>STEP: </td>
<td>
<textarea type="text" name="Step" class="textInput"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit_btn" value="submit">
</td>
<td>
<input type="submit" name="Continue_btn" value="Continue">
</td>
</tr>

</table>
</form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

您正在运行执行查询两次。

mysqli_query($conn,$sql);

该指令执行您拥有的插入查询。您正在执行一次,然后再次执行以验证函数的布尔返回值。您只需要使用验证行。

这就是你所拥有的:

  mysqli_query($conn,$sql);
  if (!mysqli_query($conn,$sql))
  {
    echo("Error description: " . mysqli_error($conn));
  }

你只需要:

  if (!mysqli_query($conn,$sql))
  {
    echo("Error description: " . mysqli_error($conn));
  }

验证行将执行该函数并返回您需要的布尔值。