我正在尝试对数据库中不同表的多个字段进行 json 编码。下面是我的代码。我目前正在使用一个数组来表示我的表的名称($tablename)。我读过有关 SQL 注入(inject)的内容,但它们似乎特别关注用户输入。但是,在这种情况下,用户与我的数据库没有交互。这是我的应用程序的后端。对于使用这样的变量名有什么想法吗?谢谢
我还研究了准备语句,但以我想要的形式获取数据非常困难。
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/mmcv/buildchartInfo.php';
$position = 0;
$results = array();
foreach($chartnames as $tablename) {
print $tablename."<br />";
encodejson($tablename);
}
function encodejson($tablename){
include $_SERVER['DOCUMENT_ROOT'] . '/mmcv/includes/connect.inc.php';
$sql="SELECT rank, name FROM $tablename";
$result = mysqli_query($connection,$sql);
//Error when data isn't returned
if(!$result)
{
$output = "error getting data";
echo $output;
//$GLOBALS['loginError'] = "error getting log in data";
exit();
}
while($row=mysqli_fetch_assoc($result)) $output[]=$row;
print(json_encode($output));
}
mysqli_close($connection);
?>
最佳答案
只要用户无法更改$tablename
的值,那么你就没有什么好害怕的。
关于php - 在 SQL 查询中使用变量(不是用户输入的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14855613/