【问题标题】:How to select table by php var when use in mysqli bind_param?在mysqli bind_param中使用时如何通过php var选择表?
【发布时间】:2018-08-06 04:05:14
【问题描述】:

我通常使用这个代码,它工作得很好。

<?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;
?>

然后我通过使用 php var 为选择表应用代码。像这样

<?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;
?>

但没有得到任何数据,我该怎么办?

【问题讨论】:

  • 这没有任何意义。除了你不能,你为什么要绑定到一个表名?我真的希望您不要通过表单或任何可以由用户操作的媒介来传递表名
  • 在发布新问题之前始终进行详尽搜索。 Stackoverflow 不需要更多重复的问题。

标签: php mysqli bindparam


【解决方案1】:

您不能绑定到表名。您需要将代码编写为:

$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);

【讨论】:

    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多