【问题标题】:İ cant post form send mysql for update我不能发布表单发送 mysql 进行更新
【发布时间】:2023-04-07 20:32:04
【问题描述】:

我创建表单并提交按钮并创建按钮=保存但没有发送更新所有 mysql 表和数据库 true 请检查我的代码哪里可能出错?

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
ob_start();
session_start();

  try{
       $db = new PDO('mysql:host=localhost;dbname=repair;charset=utf8','root','password');
   }catch(PDOException $e){
     echo 'Hata: '.$e->getMessage();
   }
$menusorgu = $db -> query("select * from setting");
$menucek = $menusorgu-> fetch(PDO::FETCH_ASSOC);
?>
  <form role="form" action="" method="post">
    <input type="text" name="setting_title"value="<?php echo $menucek['setting_title']; ?>">
    <input type="hidden" name="setting_id" value="<?php echo $menucek['setting_id']; ?>">
    <input type="submit" name="save" id="save">
  </form>
  <?php

if(isset($_POST['save'])) 
 {

$sql = "UPDATE setting SET setting_title = :setting_title, WHERE setting_id= :setting_id";
$stmt = $db->prepare($sql);                                  
$stmt->bindParam(':setting_title', $_POST['setting_title'], PDO::PARAM_STR);       
$stmt->execute(); 
}
?>

【问题讨论】:

  • 那个filmID 怎么样?你从哪里得到它?你也不想绑定吗?
  • 嗨!根据您的数据库图像,我在您的数据库中看不到任何名为“filmID”的列。所以它不会更新,因为它首先没有找到任何 filmID 列。然后你的位置没有一行
  • 我现在编辑电影 id 但还没有运行
  • 我只是重新排列了代码,请再次检查
  • 您可能需要在表单中执行操作,除非您使用 JS 管理它。如前所述,您如何获得 settings_id ?您可能需要添加隐藏输入

标签: php html css


【解决方案1】:

这里是php表单的直接链接:https://www.php.net/manual/en/tutorial.forms.php

您可能会发现一些有趣的基础知识。但在您的情况下,我会说您至少应该在您的操作中添加一个文件,以将您的表单发送到您的控制器。

当您选择方法后,我会建议添加一个隐藏输入以包含您的 setting_ID:

  <form role="form" action="YOURCONTROLLER.PHP" method="post">
    <input type="text" name="setting_title" value="<?php echo $menucek['setting_title']; ?>">
    <input type="hidden" name="setting_id" value="<?php echo $menucek['setting_id']; ?>">
    <input type="submit" name="save" id="save">
  </form>

我不认为它会解决所有问题,但至少你会有一个基础

【讨论】:

  • 如果操作为空,则使用当前页面 URL。
  • 还是不行,我要疯了 为什么简单的一行代码行不通?
  • @Barmar 是的,但那不是安全的方式。
  • 您似乎是在说它与问题有关,而不是无关的建议。
  • @juniordev4444 如果你是dump(isset($_POST['save']));die;,你有什么? @Barmar 是的,你有权纠正,这就是我给你 1+ 的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多