gpt4 book ai didi

php - mysqli 查询返回错误值

转载 作者:可可西里 更新时间:2023-11-01 01:01:00 24 4
gpt4 key购买 nike

我正在制作一个函数,它返回连接到用户 ID 的特定用户的请求字段,我当前的代码是这样的:

<?php
function getUserData($id = "current", $field = "username"){
global $database;
if($id == "current"){
$id = $_SESSION['userID'];
}
$query = $database->prepare("SELECT :field FROM `users` WHERE `ID` = :ID LIMIT 1;");
$query->bindParam(":ID",$id);
$query->bindParam(":field",$field);
$query->execute();
while($row = $query->fetch(PDO::FETCH_BOTH)){
print_r($row);
}
//return $username;
}
?>

如果 $id 值保持为空,它会查找当前登录的 ID,这工作正常。如果 $field 为空,它也一样,它只查找与问题所在的 ID 相关联的用户名$query->bindParam("field",$field); .. 由于某些原因,这不起作用,并且在使用它时 print_r 返回:

数组([用户名] => 用户名[0] => 用户名)

虽然完全相同的查询在像这样使用时有效:

$query = $database->prepare("SELECT $field FROMusersWHEREID= :ID LIMIT 1;");

我做错了什么?

最佳答案

你绑定(bind)了一个字段名,所以你的查询会变成这样:

SELECT 'username' FROM `users` WHERE `ID` = 'X' LIMIT 1;

这行不通,你不能像这样绑定(bind)一个字段名。您将不得不直接将字段名称作为 php 变量传递而不绑定(bind)它们。

看看这个:Can PHP PDO Statements accept the table or column name as parameter?

它可能对你有帮助。

关于php - mysqli 查询返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26604523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com