Php 在INSERT TO中使用变量作为表名

Php 在INSERT TO中使用变量作为表名,php,mysql,Php,Mysql,你好,我要在数据库中插入一些数据。 没有“我的sql”错误,但数据未插入数据库。我的代码是: mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET character_set_results=utf8"); if (isset($_POST['Submit'])){ $category= $_POST['category']; if ($category==1) {$cat="rf_power"; $sub_cat=$_

你好,我要在数据库中插入一些数据。 没有“我的sql”错误,但数据未插入数据库。我的代码是:

 mysql_query("SET CHARACTER SET 'utf8'");
  mysql_query("SET character_set_results=utf8");


if (isset($_POST['Submit'])){ 
$category= $_POST['category'];

if ($category==1) {$cat="rf_power";
$sub_cat=$_POST['power']; $dur="p_duration";}
if ($category==2) {$cat="rf_bts";
$sub_cat=$_POST['BTS']; $dur="b_duration";}
 if ($category==3) {$cat="rf_transmission";
 $sub_cat=$_POST['transmission']; $dur="t_duration";}
 if ($category==4) {$cat="core_network";$sub_cat=$_POST['core']; $dur="duration";}
 if ($category==5) {$cat="daisy_chain";
 $sub_cat=$_POST['daisy']; $dur="d_duration";}

 $dateid=date('Y-m-d');
 $s_name=mysql_real_escape_string($_POST['s_name']);
 $location=mysql_real_escape_string($_POST['city']);
 $alarm_type=mysql_real_escape_string($_POST['a_type']);
 $severity=mysql_real_escape_string($_POST['severity']);
 $reason=mysql_real_escape_string($_POST['reason']);
 $shift_operation=mysql_real_escape_string($_POST['shto_do']);
 $system_operation=mysql_real_escape_string($_POST['syto_do']);
 $start_time=mysql_real_escape_string($_POST['date1']);
 $end_time=mysql_real_escape_string($_POST['date2']);
 $dur=mysql_real_escape_string($_POST['date3']);
 echo $dateid;
 echo $s_name;
 echo $sub_cat;
 echo $location;
 echo $alarm_type;
 echo $severity;
 echo $start_time;
 echo $end_time;
 echo $dur;
 echo $reason;
 echo $shift_operation;
 echo $system_operation;
 echo $cat ;

  $sql = "INSERT INTO ".$cat." (dateid,system_name,sub_cat,location,alarmtype,severity,start_time,end_time,duartion,reason,shift_operation,system_operation)
    VALUES ('$dateid','$s_name','$sub_cat','$location','$alarm_type','$severity','$start_time','$end_time','$dur','$reason','$shift_operation','$system_operation')";
 }

所有的指纹都是正常的。我认为错误是因为“插入到“$cat.”,$cat就在这里?

从发布的代码来看,您的查询似乎没有被执行,而是存储在
$sql
中,并放在那里..从代码中没有实际执行查询的内容,我在底部添加了这个内容。
mysql\u查询($sql)的添加;
将针对所选数据库运行脚本

 $sql = "INSERT INTO $cat (dateid,system_name,sub_cat,location,alarmtype,severity,start_time,end_time,duartion,reason,shift_operation,system_operation)
        VALUES ('$dateid','$s_name','$sub_cat','$location','$alarm_type','$severity','$start_time','$end_time','$dur','$reason','$shift_operation','$system_operation')";
    mysql_query($sql);

您还没有执行查询,至少在发布的代码中没有。您应该尝试停止使用PHP mysql API,我希望在$sql=“INSERT-INTO”之前不会出现错误,因为所有数据都通过echo正常打印。我也尝试过将$sql=“INSERT-INTO$cat”插入到这段代码中,但没有成功same@ganaa我额外添加了一行
mysql\u查询($sql);