我需要一些帮助来检查这个功能,提前感谢任何帮助:
function user_data($user_id) {
$data = array();
$user_id = (int)$user_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1) {
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = mysqli_fetch_assoc(mysqli_result ("SELECT $fields FROM 'users' WHERE 'user_id' = $user_id"));
print_r($data);
die();
return $data;
}
}
答案 0 :(得分:0)
如果您的意图是返回与用户ID相关的行,那么只需删除其他功能:
function user_data($user_id) {
$data = array();
$user_id = (int) $user_id;
$con = new mysqli('localhost', 'username', 'password', 'database');
$user_id = $con->real_escape_string($user_id);
$sql = "SELECT * FROM users WHERE user_id = '$user_id' ";
$query = $con->query($sql);
if($query->num_rows > 0) {
$data = $query->fetch_assoc();
}
return $data;
}
您对func_get_args
的使用没有意义,因为您在使用前只是取消了它们。并在查询中删除单引号。
标识符引号是反引号。或者只是删除它们。
答案 1 :(得分:0)
嘿尝试转义查询中的变量。 结果它返回null。所以查询没有执行
$data = mysqli_fetch_assoc(mysqli_result ("SELECT "+$fields+" FROM 'users' WHERE 'user_id' = "+$user_id+""));