具有可变数字表名

时间:2017-12-12 15:10:35

标签: php mysql mysqli prepared-statement tablename

我需要帮助来完成这段代码的工作:

<?php

$a = $_GET["a"];

$stmt = mysqli_stmt_init($conn);

if (mysqli_stmt_prepare($stmt,"SELECT * FROM `?`")) {

   mysqli_stmt_bind_param($stmt, "i", $a);
   mysqli_stmt_execute($stmt);
   $res = mysqli_stmt_get_result($stmt);

   while($row = mysqli_fetch_array($res)){
      if($row["id"] == 0){
         $title = $row["title"];
         $mal = $row["mal"];
      }
   }

   mysqli_stmt_close($stmt);
}

?>

在我的数据库中,我有一些带有数字名称(1,2,3 ...)的表格,我希望在网址中使用变量$ a获取我想要的表格。

1 个答案:

答案 0 :(得分:0)

您不能使用预准备语句绑定对象名称(在本例中为表名),仅使用值。您将不得不求助于字符串操作(为了简洁起见省略了SQL清理):

if (mysqli_stmt_prepare($stmt,"SELECT * FROM `$a`")) { # Here!

   mysqli_stmt_execute($stmt);
   $res = mysqli_stmt_get_result($stmt);