将POST回送到SQL字符串

时间:2019-01-20 08:15:25

标签: php mysql

我有一个sql字符串,我想将表单中的值回显到字符串中以删除表。目前,我正在使用以下字符串

$sql4 = "DROP TABLE gs.gs_object_data_<? echo $rows['$imei']; ?>";

这与我在上一页从$ _POST提取的IMEI无关。

我也尝试了以下字符串无济于事。

$sql4 = "DROP TABLE gs.gs_object_data_'%$imei%'";

$sql4 = "DROP TABLE gs.gs_object_data_'".$imei."'";

gs_object_data在所有表中都是常量,只是imei有所不同

我需要一个结果,例如gs_object_data_111111,上一页的imei将为111111

任何建议将不胜感激。

3 个答案:

答案 0 :(得分:0)

这将起作用:

$sql4 = "DROP TABLE gs.gs_object_data_{$rows['imei']};";

答案 1 :(得分:0)

您似乎要使用POST请求变量-是吗?您可能会发现sprintf在创建这样的字符串时很有用-您在一个简单的字符串中提供占位符,然后在以后为它们分配一个变量〜可以避免出现通常用引号引起来的问题。

以下测试POST变量imei是否可用并创建sql(如果存在)-否则将$ sql变量设置为false(false可在以后的逻辑测试中使用)

$sql = !empty( $_POST['imei'] ) ? sprintf( 'drop table `gs`.`gs_object_data_%s`;', $_POST['imei'] ) : false;
if( $sql ){
    /* do something with sql */
}

答案 2 :(得分:0)

我发现以下代码有效

$sql4 = "DROP TABLE gs.gs_object_data_$imei";

imei已在上一页的POST中设置为变量