从php变量中选择SQL表
我从列表/数组中选择了一个随机表,我希望能够使用mysqli_查询功能调用该随机表,即动态选择一个表 这是我的密码:从php变量中选择SQL表,php,mysql,sql,Php,Mysql,Sql,我从列表/数组中选择了一个随机表,我希望能够使用mysqli_查询功能调用该随机表,即动态选择一个表 这是我的密码: <?php $mysqli=mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE); // Check connection if (mysqli_connect_errno($mysqli)) { ech
<?php
$mysqli=mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
// Check connection
if (mysqli_connect_errno($mysqli))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Looks at all prodcuts and selects those that have special offers enabled
// Selects a random table from the array
$tables_special = ["ajbs_products_console" ,"ajbs_products_console_games", "ajbs_products_pc", "ajbs_products_pc_games", "ajbs_products_pc_parts"];
$rtable = $tables_special[floor (rand(0,count($tables_special)-1))];
echo "<p>".$rtable." was selected</p>";
$products = mysqli_query("SELECT * FROM '".$rtable."'");
echo "<p>".$products."</p>";
while($productRow = mysqli_fetch_array($products))
{
if ($productRow['product_specials'] == 1)
{
echo "<table>";
echo "<tr>";
echo "<td rowspan='2'><img src=" . $productRow['product_image'] . "/></td>";
echo "</tr>";
echo "<table border='1'>";
echo "<tr>";
echo "<td>Product Name</td>";
echo "<td>" . $productRow['product_name'] . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Description</td>";
echo "<td>" . $productRow['product_description'] . "</td>";
echo "</tr>";
echo "</table>";
}
}
mysqli_close($mysqli);
?>
我不明白为什么这不起作用
谢谢
Bull不应使用单引号引用表名,而应使用反勾号,单引号使其成为字符串而不是表名 此外,函数mysqli_query接受一个额外的参数,即连接
$products = mysqli_query("SELECT * FROM '".$rtable."'");
应该是,
$products = mysqli_query($mysqli, "SELECT * FROM `".$rtable."`");
试一试
仍然存在错误:选择了ajbs_products_console警告:mysqli_query()至少需要2个参数,1个参数在第103行的/usr/local/www/project/A.J.Bullock/ajbstudios/index.php中给出,所以现在看来这不是问题所在。我认为这与表被定义为数组$tables\u special中的字符串有关,但我不知道这是什么原因certain@Bull更新了答案,行中有两个单独的错误。仍然不起作用,我想我必须找到另一种方法。不过谢谢你的帮助:)我强烈建议你现在就更改密码。
$products = mysqli_query($mysqli, "SELECT * FROM ".$rtable);