我做了一个表格,我想将输入值存储cat
到我的SQL数据库中。这是我的PHP代码:
<?php
$cat = $_POST['cat'];
if ( !empty($_POST)) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE orders set cat = ? WHERE id = '$id'";
$q = $pdo->prepare($sql);
$q->execute(array($cat));
Database::disconnect();
}
?>
这是我的表格:
<form action="index.php" method="post">
<div id="modal-content" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3><?php echo $id ?></h3>
</div>
<div class="modal-body">
<p>
<input type="text" name="cat" />
</p>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>
</form>
有人知道为什么这行不通吗?没有数据存储到数据库中。数据库连接工作正常。谢谢
**** 更新:
我发现了我的错误。结果如下:
<?php
$cat = $_POST['cat'];
$id = $_POST['id'];
if ( !empty($_POST)) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE orders set cat = ? WHERE id = '$id'";
$q = $pdo->prepare($sql);
$q->execute(array($cat));
Database::disconnect();
}
?>
和形式
<form action="index.php" method="post">
<div id="modal-content" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3><?php echo $id ?></h3>
</div>
<div class="modal-body">
<p>
<input type="text" name="cat" />
<input type="hidden" name="id" value="1"/>
</p>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</div>
</div>
</form>
正如评论中已经提到的,您有一个undefined $id
。
$cat = $_POST['cat'];
if ( !empty($_POST)) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE orders set cat = ? WHERE id = '$id'";
$q = $pdo->prepare($sql);
$q->execute(array($cat));
Database::disconnect();
}
?>
相反,您应该具有:
在您的HTML中:
<input type="hidden" name="check"/>
然后在您的PHP中:
if(isset($_POST['check'])){
$cat = $_POST['cat'];
$id = $_POST['id'];
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE orders set cat = ? WHERE id = '$id'";
$q = $pdo->prepare($sql);
$q->execute(array($cat));
Database::disconnect();
}
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句