Search code examples
phpmysqlibindparam

How to select table by php var when use in mysqli bind_param?


Normally i use this code, it's work good.

<?PHP
include("connect.php");
$xxx = "275";
$sql = 'SELECT * FROM test_table WHERE number <= ? order by id desc';
$statement = $db_mysqli->prepare($sql);
$statement->bind_param('s', $xxx);
$statement->execute();
$result = $statement->get_result();
$row = $result->fetch_array(MYSQLI_ASSOC);
$number = $row['number'];
echo $total_price;
?>

Then i apply code by use php var for select table. like this

<?PHP
include("connect.php");
$xxx = "275";
$table_name = "test_table";
$sql = 'SELECT * FROM ? WHERE number <= ? order by id desc';
$statement = $db_mysqli->prepare($sql);
$statement->bind_param('ss', $table_name , $xxx);
$statement->execute();
$result = $statement->get_result();
$row = $result->fetch_array(MYSQLI_ASSOC);
$number = $row['number'];
echo $total_price;
?>

But not get any data, how can i do ?


Solution

  • You cannot bind to a table name. You will need to write your code as:

    $table_name = "test_table";
    $sql = "SELECT * FROM $table_name WHERE number <= ? order by id desc";
    $statement = $db_mysqli->prepare($sql);
    $statement->bind_param('s', $xxx);