php - 如何将 MySQL 选择函数作为字符串返回?

标签 php mysql function

我一直致力于我的第一个大型网站,并在尝试创建一个 PHP 函数时遇到问题,该函数根据调用函数时给出的条件返回一个值。

我在使用下面的代码时遇到了问题,我只能返回“DATABASE: 1”

function data_r_user($request, $username ) {
    include("login/dbconnect.php");
    $sqli = "SELECT " . $request . " FROM users WHERE username = " . $username;
    $result = mysqli_query($dbconnect,$sqli ) or die();

    return $result;
}

在搜索了一段时间后,我似乎发现问题是所有 SQL 查询都返回一个数组而不是一个字符串(我相信情况确实如此,如果我错了,抱歉)。

我认为返回单个结果会很容易,但事实并非如此。

所以基本上我想要一种从该函数返回单个结果的方法,我不关心它是过程的还是对象的。

最佳答案

强烈建议使用准备好的语句,所以请原谅我没有将您指向 mysqli_fetch_row而是向您展示如何安全地执行此操作:

function data_r_user($request, $username ) {
    // you want require and only do it once
    require_once("login/dbconnect.php");

    $return = '';

    // white list the allowed columns
    $columns_allowed = array('id', 'username', 'firstname', 'lastname');
    if (! in_array($request, $columns_allowed)) {
        // if they ask for something not allowed give them nothing
        return '';

    }

    /* create a prepared statement */
    if ($stmt = mysqli_prepare($dbconnect, "SELECT " . $request . " FROM users WHERE username = ?")) {

      /* bind parameters for markers */
      mysqli_stmt_bind_param($stmt, "s", $username);

      /* bind result variables */
      mysqli_stmt_bind_result($stmt, $return);

      /* fetch value */
      mysqli_stmt_fetch($stmt);     
    }

    return $return;
}

关于php - 如何将 MySQL 选择函数作为字符串返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40962680/

相关文章:

php - 无法从单独的文件中检索数据库连接信息

javascript - 数组 $data ['image' ] 显示为空数组,无法将文件发送到 php

javascript - 在查询中附加单引号 (' ' )

php - wordpress - 如何从侧边栏获取页面中的php变量

javascript - 远程提交表单,本地确认

php - php md5 中的简单登录表单?

C# 将每个单选按钮选定的数据保存到数据库

c - 是否可以从嵌套函数调用返回的对象中获取指针?

mysql - 带有索引列的 WHERE 子句中的 "CASE WHEN"

javascript - 从数组中过滤掉特定值