duanhong8839 2012-02-06 05:32
浏览 50

为什么不能将php变量用作mysql insert语句中的表名

In my PHP script I am trying to use variable name as the table name in a MySQL statement, but when I use the variable as the table name it give me a syntax error if no ` are used and says Incorrect Table Name '' when ` are used. The code is attached below

function toQuery($tblName){
   $t = "testtitle";
   $art = "testarticle";
   $auth = "testauthor";

       return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)";
}

mysql_connect("localhost","testuser","pass123");

mysql_query("Use `test_schema`");

if(mysql_query(toQuery("test_table"))){
    echo "Query: ".toQuery("test_table")." was run.";
}else{
    echo "Query: ".toQuery("test_table")." was not run. ".mysql_error();
}

When I use the variable $tblName variable it echos an identical query to if i just put test_table straight in the query returned, but the one with out the variable in query executes properly.

  • 写回答

2条回答 默认 最新

  • 普通网友 2012-02-06 05:41
    关注

    you don't use mysql_select_db() . try this :

    function toQuery($tblName){
       $t = "testtitle";
       $art = "testarticle";
       $auth = "testauthor";
    
           return "INSERT INTO `$tblName` VALUES ('$t', '$art', '$auth', null)";
    }
    
    mysql_connect("localhost","testuser","pass123");
    mysql_select_db('dbname');
    mysql_query("Use `test_schema`");
    
    if(mysql_query(toQuery("test_table"))){
        echo "Query: ".toQuery("test_table")." was run.";
    }else{
        echo "Query: ".toQuery("test_table")." was not run. ".mysql_error();
    }
    

    replace your database name eith dbname

    评论

报告相同问题?

悬赏问题

  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?