如何在SQL查询中使用动态表"选择*来自$ var; " $ var从另一个文件中获取

时间:2017-04-03 04:06:44

标签: php mysql sql

在下面的代码中,我想使用$ var作为tablename,$ var的值来自另一个文件。 $ var value是表的名称。所以我想在sql查询中使用动态tablenaame。但是当我执行下面的代码时,sql查询没有采用$ var值。但是当我在此文件中将$ var值声明为静态值时,它正在正确执行。所以请帮帮我...如何在sql查询中使用变量作为tablename。

include_once("set_team.php");
// Create connection
$conn = mysqli_connect($server, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 


ob_start();
echo $table;
$var = ob_get_clean();

$sql = "SELECT * FROM $var";
$res = mysqli_query($conn,$sql);
$result = array();


while($row = mysqli_fetch_array($res)){
array_push($result,
array('name'=>$row[1]
));
}
        echo json_encode(array("result"=>$result));


$conn->close();

1 个答案:

答案 0 :(得分:0)

是的,您可以在sql中动态选择表。您必须传递变量然后使用它。 Php提供了可变插值,我发现它更容易写入和读取,因此您可以直接在字符串中插入$ var_value。

您可以尝试会话,Cookie,GET,POST变量等方法。

<强>会话

//On page 1
$_SESSION['varname'] = $var_value;

//On page 2
$var_value = $_SESSION['varname'];
$sql_query = "select * from $var_value";

在尝试访问session_start()数组之前,以及在将任何输出发送到浏览器之前,在这两个页面上运行$_SESSION语句。

<强>曲奇:

//One page 1
$_COOKIE['varname'] = $var_value;

//On page 2
$var_value = $_COOKIE['varname'];
$sql_query = "select * from $var_value";

会话和cookie之间的最大区别在于,如果您正在使用会话,则变量的值将存储在服务器上;如果您正在使用cookie,则会在客户端上存储。

GET和POST

您可以将链接中的变量添加到下一页:

$var_value = $_POST['varname'];
$sql_query = "select * from $var_value";

        or

$var_value = $_GET['varname'];
$sql_query = "select * from $var_value";

这将创建一个POST / GET变量。