【问题标题】:PHP function for finding generic value from database [duplicate]用于从数据库中查找通用值的 PHP 函数
【发布时间】:2020-05-28 03:33:47
【问题描述】:

我将如何创建(对于 mySQL 数据库)具有两个参数的 PHP 函数:第一个是表中的列名,第二个是用户名?该函数应返回给定用户名的该列中的表值。

基本上,我需要类似下面的代码(用于 SQLite 数据库和 Java),但在 PHP 中。

public String getInformation(String information, String username) {
        SQLiteDatabase db = getReadableDatabase();
        Cursor cur = db.rawQuery("SELECT " + information + " FROM registeruser WHERE username=" + "'" + username + "'",null);
        String result = "";
        if (cur.moveToFirst()) {
            int resultColumn = cur.getColumnIndex(information);
            result = cur.getString(resultColumn);
        }
        return result;
    }

【问题讨论】:

  • 这不是PHP代码,你试过的PHP在哪里
  • 是的,我在问题中说它不是 PHP。这是我需要的一个例子,但是在 PHP 中。我尝试制作类似于以下的方法,但我不知道如何获取参数并使用它。
  • 私有函数 getUsersPasswordByUsername($username){ $stmt = $this->con->prepare("SELECT password FROM registeruser WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->执行(); $stmt->bind_result($password); $stmt->fetch();返回$密码; }
  • 从不作为 cmets 提供相关细节,请删除您的评论并编辑您的问题。

标签: php mysql database


【解决方案1】:

我会将您的代码转换为 PHP:

步骤:

连接到您的数据库。

使用 prepare 方法准备你的语句。

将参数绑定到准备好的语句 $stmt。

执行您的语句,获取结果集,提取 值,然后返回它。

<?php
function getInformation($field, $value)
{
    $conn = new mysqli("localhost", "user", "password", "database");
    $query ="select $field from registeruser where username=?";

    $stmt = $conn->prepare($query);
    $stmt->bind_param("s",$value);
    $stmt->execute();
    $res = $stmt->get_result();
    $row = $res->fetch_assoc();

     return $row[$field];
}

?>

【讨论】:

  • 只有代码的答案在 Stack Overflow 上的价值很低。所有答案都应该包含一个简单的英语解释,说明答案的作用以及它是如何工作的,目的是教育和授权 OP 和成千上万的未来研究人员。我养成了从不赞成纯代码答案的习惯——即使它们是正确的。
【解决方案2】:

连接数据库:

$link = mysqli_connect("yourip", "dbusername", "dbpassword", "dbname");
//check connection
if($link === false){
    die("ERROR: Could not connect. ".mysqli_connect_error());
}

创建请求:

$sql = "SELECT $columnsyouwant FROM $tablename WHERE username=$username";
$result = $link->query($sql);

检查每个结果并做任何你需要的事情:

if($result->num_rows>0){
    while($row = $result->fetch_assoc()){
        x=$row["columnname"] //or do whatever you need with this value
    }
}

【讨论】:

  • 语法错误。没有准备好的陈述。引用不当。不安全/不稳定。
猜你喜欢
  • 2020-03-12
  • 2015-09-18
  • 1970-01-01
  • 2015-01-31
  • 2013-06-13
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多