dongying2112 2012-12-21 02:31
浏览 306
已采纳

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

hello i am going to insert some data into data base. There are no my sql error but data not inserted into data base. My code is:

 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')";
 }

all prints normal by echo. i think the error is for the "INSERT INTO ".$cat." . $cat is right in here?

  • 写回答

1条回答 默认 最新

  • dongshadu2546 2012-12-21 02:34
    关注

    From the posted code it seems your query is not being executed, but stored inside $sql and sitting there.. From the code there is nothing to actually execute the query, I have added this in the bottom. the addition of mysql_query($sql); Will run the script against your selected database

     $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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式