我正在尝试创建一个页面,允许用户输入他将执行特定任务所需的步骤。但是,每当我提交一个步骤时,多个类似的记录都会存储在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>
答案 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));
}
验证行将执行该函数并返回您需要的布尔值。