【问题标题】:Run an SQL Script from a drop down menu从下拉菜单中运行 SQL 脚本
【发布时间】:2022-01-25 07:13:28
【问题描述】:

我正在尝试创建一个下拉菜单并根据每个选项值运行特定的 SQL 脚本。

部分php代码是这样的(我让标签更容易让你理解我想要的东西):

 <div class="form-group RunningSQLScripts">
    <label for="inputStatus">Running My Scripts</label>
        <select id="inputStatus" name="RunningSQLScripts" class="form-control">
        <option selected disabled>--</option>
        <option value="RunScript1">Delete Whole Table</option>
        <option value="RunScript2">Run Script 3</option>
                                    
        </select>
 </div>

假设 RunScript1 应该运行 SQL 命令 截断表 table_name1。我怎样才能从 php 菜单中做到这一点?

【问题讨论】:

  • 您可以使用onClick= 方法来代替value=。你试过吗?
  • 我刚刚为你编写了这个代码(见下文)完整的工作,你可以做得更好。只需添加 onchange='this.form.submit();'

标签: php html sql


【解决方案1】:

最简单的方法:完全工作, 只需添加 onchange='this.form.submit();'

<form id="companyForm" name="companyForm" class="form-horizontal" type=get>


<div class="form-group RunningSQLScripts">
    <label for="inputStatus">Running My Scripts</label>
    <select id="inputStatus" name="RunningSQLScripts" onchange='this.form.submit();' class="form-control">
        <option selected disabled>--</option>
        <option value="RunScript1">Delete Whole Table</option>
        <option value="RunScript2">Run Script 3</option>
                                    
        </select>
 </div>

</form>


<?php
$RunningSQLScripts = $_GET['RunningSQLScripts'];

$con = mysqli_connect('host','username','password','db');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,"db");

if ($RunningSQLScripts == "RunScript1") 
{

$sql="truncate TABLE `table_name1`;";  // truncate table table_name1
$result = mysqli_query($con,$sql);

}

mysqli_close($con);
?>

【讨论】:

    【解决方案2】:

    您可以将表单提交到服务器并执行您需要的请求。

    <?php
      $db = new mysqli('localhost', 'db_user', '1234', 'db_name');
      if($db->connect_errno)die('Error: '.$db->connect_error);
    ?>
    
    <form name="runSQL" method="get">
        <div class="form-group RunningSQLScripts">
            <label for="inputStatus">Running My Scripts</label>
                <select id="inputStatus" name="RunningSQLScripts" class="form-control">
                <option selected disabled>--</option>
                <option value="RunScript1">Delete Whole Table</option>
                <option value="RunScript2">Run Script 3</option>                   
                </select>
                <input type="submit" value="Run">
         </div>
    </form>
    
    <?php
        $runSQL = $_GET['RunningSQLScripts'];
        
        switch($runSQL){
            case 'RunScript1':
                $db->query("truncate table `name`");
                echo '* Successfully deleted *';
            break;
            
            case 'RunScript2':
                $db->query("SQL");
                echo '* Successfully run *';
            break;
        }
    ?>
    

    【讨论】:

      【解决方案3】:

      最简单的方法是使用onclick=然后name_of_function();

      例如:

       <div class="form-group RunningSQLScripts">
          <label for="inputStatus">Running My Scripts</label>
              <select id="inputStatus" name="RunningSQLScripts" class="form-control">
              <option selected disabled>--</option>
              <option onclick="RunScript1()">Delete Whole Table</option>
              <option onclick="RunScript2()">Run Script 3</option>
                                          
              </select>
       </div>
      

      然后根据函数名。 创建适当的函数以在点击时运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-30
        • 2020-12-20
        • 2017-12-07
        • 1970-01-01
        相关资源
        最近更新 更多