我已经在所有问题上搜索了我怎么做,但我仍然无法获得我的价值。
我要做的是:管理员将一些文本放入textarea(以POST格式),管理员点击“发送”按钮,然后替换数据库中的值。
我正在使用PDO进行连接。
这是我的代码:
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" style="text-align: center; margin-top: 70px;">
<form method="post" action="../index.php">
<textarea style="width: 100%; height: 100px;" name="whatupdate"></textarea><br><br>
<input type="submit" class="btn btn-outline-danger" name="subsub">
<?php
require '../database.php';
$db = Database::connect();
$what = $_POST['whatupdate'];
$statement = $db->prepare("UPDATE updator SET marquee = '$what'
WHERE updator.id=0;");
$statement->execute();
?>
</form>
</div>
</div>
</div>
问题是,我无法转储在我的textarea中输入的值,因此数据库中的新值无效:
但如果我这样写:
$statement = $db->prepare("UPDATE updator SET marquee = 'ANYKINDOFTEXT'
WHERE updator.id=0;");
它正确地替换了列值......
感谢您阅读并提供答案!
答案 0 :(得分:0)
您需要检查是否设置了要发布的变量。尝试使用此代码:
<?php
require '../database.php';
if(isset($_POST['subsub'])):
$db = Database::connect();
$what = $_POST['whatupdate'];
$statement = $db->prepare("UPDATE updator SET marquee = :what
WHERE updator.id=0;");
$statement->execute([':what' => $what]);
endif;
?>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" style="text-align: center; margin-top: 70px;">
<form method="post" action="">
<textarea style="width: 100%; height: 100px;" name="whatupdate"></textarea><br><br>
<input type="submit" class="btn btn-outline-danger" name="subsub">
</form>
</div>
</div>
</div>
答案 1 :(得分:0)
问题是,您要将代码重新提交到同一页面。将您的PHP代码放在顶部并将其包装在if()
中,以便它可以检查$_POST['subsub']
,如果存在,则执行其余代码。
此外,在您的表单中,为了清楚起见,请将操作更改为action=''
。