如何更改 SQL 插入语句的目标表?
Posted
技术标签:
【中文标题】如何更改 SQL 插入语句的目标表?【英文标题】:How to change the target table of a SQL insert statement? 【发布时间】:2008-12-20 07:16:27 【问题描述】:您将如何编写一个 sql 语句,该语句允许您插入从表单获得的数据,但将根据表单上选择的内容将其输入到一个表或另一个表中?我知道如何将表单中的数据插入到指定的表中,但我需要能够使用表单来选择将数据输入到哪个表中。这是我的表格的副本...
print("<form action="<?=$php_SELF?>" enctype="multipart/form-data" method="post">
<fieldset>
<legend>Upload Your Motions and Orders Here</legend>
<table border="0">
<tr>
<td class="label"> <label for="label">Select Your File:</label>
</p></td>
<td class="input"><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="thefile" value="<? echo $thefile; ?>" accesskey="s" tabindex="10"></td>
</tr>
<tr>
<td class="label"><span class="input">
<label for="label">Type of File:</label>
</span></td>
<td class="input"><select name="field" id="field" value="<? echo $field; ?>" accesskey="t" tabindex="20">
<option value="Motions">Motions</option>
<option value="Orders">Orders</option>
</select> </td>
</tr>
<tr>
<td class="label"><label for="label">Name of File:</label> </td>
<td class="input"><label for="type"></label>
<input type="text" name="name" id="name" value="<? echo $name; ?>" accesskey="n" tabindex="30"></td>
</tr>
<tr>
<td class="label"><label for="label">Date Filed In Court:</label> </td>
<td class="input"><label for="date"></label>
<input type="text" name="date" id="date" value="<? echo $date; ?>" accesskey="f" tabindex="40"></td>
</tr>
<tr>
<td class="label"><span class="input">
<label for="label">Description:</label>
</span></td>
<td class="input"><textarea name="description" id="description" cols="30" rows="5" value="<? echo $description; ?>" accesskey="d" tabindex="50"></textarea></td>
</tr>
<tr>
<td class="label"> </td>
<td class="input"><input type="submit" name="submit" value="Upload This File" /></td>
</tr>
</table>
</fieldset>
</form>");`
<form action="<?=$PHP_SELF?>" enctype="multipart/form-data" method="post">
<fieldset>
<legend>Upload Your Motions and Orders Here</legend>
<table border="0">
<tr>
<td class="label"> <label for="label">Select Your File:</label>
</p></td>
<td class="input"><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="thefile" value="<? echo $thefile; ?>" accesskey="s" tabindex="10"></td>
</tr>
<tr>
<td class="label"><span class="input">
<label for="label">Type of File:</label>
</span></td>
<td class="input"><select name="field" id="field" value="<? echo $field; ?>" accesskey="t" tabindex="20">
<option value="Motions">Motions</option>
<option value="Orders">Orders</option>
</select> </td>
</tr>
<tr>
<td class="label"><label for="label">Name of File:</label> </td>
<td class="input"><label for="type"></label>
<input type="text" name="name" id="name" value="<? echo $name; ?>" accesskey="n" tabindex="30"></td>
</tr>
<tr>
<td class="label"><label for="label">Date Filed In Court:</label> </td>
<td class="input"><label for="date"></label>
<input type="text" name="date" id="date" value="<? echo $date; ?>" accesskey="f" tabindex="40"></td>
</tr>
<tr>
<td class="label"><span class="input">
<label for="label">Description:</label>
</span></td>
<td class="input"><textarea name="description" id="description" cols="30" rows="5" value="<? echo $description; ?>" accesskey="d" tabindex="50"></textarea></td>
</tr>
<tr>
<td class="label"> </td>
<td class="input"><input type="submit" name="submit" value="Upload This File" /></td>
</tr>
</table>
</fieldset>
</form>
文件选择字段的类型将决定数据将插入的表。
【问题讨论】:
【参考方案1】:我会远离运行动态 sql。由于您有一个已知类型列表,您可以根据文件类型将选择表的逻辑放在应用层的案例语句中。另一种选择是使用 case 语句或一组 if 语句创建存储过程。这样你就不会为插入构造动态 sql。
【讨论】:
以上是关于如何更改 SQL 插入语句的目标表?的主要内容,如果未能解决你的问题,请参考以下文章