php - 在 MySQL 中使用 PHP 变量作为表名
问题描述
我想使用一个PHP
变量 ( $username
) 作为SQL
我正在创建的表的名称。我需要使用它,因为在我的网页中,每个用户都需要有自己的表格,他可以在其中放置数据,当我尝试从表格中选择数据不起作用时,我尝试了很多次但它不起作用,你能帮我解决这个问题吗?
$result = mysqli_query($mysqli, "SELECT * FROM `$username` ORDER BY id DESC");
和
$sql= "SELECT * FROM `$username` ORDER BY data DESC";
这些都不起作用,你能帮帮我吗?
这是我的代码
<?php
session_start();
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
$sql= 'SELECT * FROM '.$username.' ORDER BY data DESC';
?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<br/><br/>
<div>
<table align="center" width='100%' border=0>
<tr bgcolor='#CCCCCC'>
<td>Data</td>
<td>Cantiere</td>
<td>Pranzo</td>
<td>Cena</td>
<td>Hotel</td>
<td>Macchina</td>
<td>Note</td>
<td>Edit/Delete</td>
</tr>
<?php
while($res = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$res['data']."</td>";
echo "<td>".$res['cantiere']."</td>";
echo "<td>".$res['pranzo']."</td>";
echo "<td>".$res['cena']."</td>";
echo "<td>".$res['hotel']."</td>";
echo "<td>".$res['macchina']."</td>";
echo "<td>".$res['note']."</td>";
echo "<td><a href=\"edit.php?id=$res[id]\">Edit</a> | <a
href=\"delete.php?id=$res[id]\" onClick=\"return confirm('Are you sure you
want to delete?')\">Delete</a></td>";
}
?>
</table>
</div>
</body>
</html>
我得到了错误:
警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,第 36 行 index.php 中给出的 null
解决方案
你应该尝试这样的事情:
$result = mysqli_query($mysqli, "SELECT * FROM " . $username . " ORDER BY id DESC");
因为 SQL 不知道 $username 是什么
这适用于两个查询
正如洛克所建议的:
Note that this answer (and the question) contain sql that easily be hijacked! Please prepare your statements before executing them!
推荐阅读
- typescript - 为什么当映射泛型构造函数的 ConstructorParameters 时,Typescript 不再确定它是一个元组?
- azure - “az acr build” Azure CLI 命令,是否有等效的 Powershell cmdlet 命令?
- webpack - TailwindCSS JIT Webpack HMR 不断用 themekit 重新编译
- angular - 在命名插座中传递参数不起作用
- c - 在 MPI 中按顺序运行 for 循环的某些部分
- .net - 为避免使用 API,我不能只写入 Google Drive 文件夹吗?我如何找到它?
- docker - Docker:traefik 反向代理 + 自己的 dockerfile = 坏网关
- python - 为什么我的计算器 GUI 单元测试显示 AssertionError?
- scipy - sympy中符号和的复杂度
- react-native - 登录后如何隐藏按钮导航(React Native)