使用动态表名在PHP中执行mySQL查询

时间:2013-04-15 04:11:13

标签: php phpmyadmin mysqli dynamic-sql

我有一个Android应用程序,它将表名作为参数发送到php脚本以执行mySQL查询。 问题是table-name是一个参数(因此是动态的)。我尝试使用我在这里阅读的一些问题中提到的{$table_name}和反引号,但似乎没有任何效果。 有人可以告诉解决这个问题吗?

    <?php
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "mmm";
    $connect = mysql_connect($dbhost, $dbuser, $dbpass);
    $tabn= $_POST['tabn'];
    $dt=$_POST['dt'];
    $query="INSERT into $tabn VALUES('$dt')";
    $result = mysql_query($query);
    if($result)
    {
    $response["success"]=1;
    }
    else
    {
    $response["error"]=1;
    }
    echo json_encode($response);
    ?>

php脚本如上所述。我在android LogCat窗口中输出error = 1作为输出。

2 个答案:

答案 0 :(得分:1)

放置

if(mysql_errno()){
   die(mysql_error());
}

之后
$result = mysql_query($query);

它会显示MySQL错误。

if(mysql_errno()){
    $response["error"]   = 1;
    $response["message"] = mysql_error();
} else {
    $response["success"] = 1;
}

而不是:

if($result){
    $response["success"] = 1;
} else {
    $response["error"] = 1;
}

答案 1 :(得分:0)

$tablename = $_POST['gettable'];
$data='this is data you want to insert';
mysql_query("insert into `$tablename`(`data`) values('$data')");
  

$tablename

它获取将插入数据的表的名称。

$data

这是您要插入的数据。

如果要在数据库中插入数据并想要选择  一个查询中的不同表。然后使用此查询可以插入数据  在不同的桌子上。