[英]Run an SQL Script from a drop down menu
我正在嘗試創建一個下拉菜單並根據每個選項值運行特定的 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 菜單中做到這一點?
您可以將表單提交到服務器並執行您需要的請求。
<?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;
}
?>
最簡單的方法是使用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>
然后根據函數的名稱。 創建適當的函數以在點擊時運行。
我剛剛為你編寫了這個:) 完整的工作,你可以讓它變得更好。 只需添加 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);
?>
這是更危險的 - 應用程序容易受到 SQL 注入或普通 SQL 攻擊。
您是否將任何 ORM 用於 php 框架,或者您可以使用stored_procedure
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.