我创建了这个没有转义的select函数来运行简单的查询,其中数据不是来自用户。
我的功能有效,我可以用global $var
做我想做的事情但是当我试图返回值而不是使它成为全局变量时它没有用。我只是好奇为什么会这样。
这是我的功能:
function SelectQuery_NO_ESCAPE($row, $table, $row, $value) {
$Database = DatabaseConnection();
$sql_query = "SELECT $row FROM $table WHERE $row = '$value'";
$select_result = $Database['Connection']->query($sql_query) or die(mysqli_error($Database['Connection']));
if ($select_row = $select_result->fetch_assoc()) {
global $select_row;
$select_row = $select_row[$row];
}
}
我有一个test.php
文件,我使用该函数:
SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1');
echo $select_row;
这可以工作并输出1
。如果我尝试取出全局变量而只返回变量$row_value
它就不起作用。
为什么会这样?
答案 0 :(得分:4)
归还:
if ($select_row = $select_result->fetch_assoc()) {
return $select_row[$row];
}
分配返回值:
$something = SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1');
echo $something;
//or
echo SelectQuery_NO_ESCAPE('ip', 'ip_address', 'ip', '1');