我正在尝试更新表格,但没有任何改变。数据库名称和字段是正确的。
<?php
require("config.php");
$forname = $_POST['name'];
$newval = "yes";
mysqli_query($con, "UPDATE pupils SET signin = '$newval' WHERE forname = '$forname'");
mysqli_close($con);
?>
帮助表示感谢! 谢谢,
更新
出现由于某种原因数据未正确发布的情况。
<form class="form-inline" name="markin" role="form" method="POST" action="markin.php">
<div class="form-group">
<select class="form-control" name"name" id="name">
<?php
$query = "SELECT * FROM `pupils` WHERE signin = 'no'";//Grab the data
$result = mysqli_query($con, $query);
while ($row = mysqli_fetch_array($result)) {//Creates a loop to loop through results
echo "<option>" . $row['forname'] . "</option>";//$row['index'] the index here is a field name
}
?>
</select>
</div>
<button type="submit" class="btn btn-success">Mark in</button>
</form>
答案 0 :(得分:0)
使用 mysqli 扩展名是一种可怕的方法。
首先,我建议你阅读prepared statements quickstart guide,这会引导你这样......
$stmt = $con->prepare('UPDATE pupils SET signin = ? WHERE forname = ?');
$stmt->bind_param('ss', $newval, $forname);
$stmt->execute();
作为一个额外的好处,你应该设置 mysqli 以便在出错时抛出异常,这样你就不必一直检查返回值。在config.php
文件中,在创建连接之前,请执行此操作...
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$con = new mysqli(...); // or however you create $con
并且如评论中所述,开发环境中的php.ini
文件应使用以下指令启用完整错误报告
error_reporting = E_ALL
display_errors = On
要直接回答您的问题,您错过了<select>
元素name
属性的等号。它应该是
<select class="form-control" name="name" id="name">