在下面的代码中,我想使用$ 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();
答案 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变量。