我正在返回连接到用户ID某个用户的必填字段的功能,我当前的代码是这样的:mysqli的查询返回错误的值
<?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返回此:
Array ([username] => username [0] => username)
而完全相同的查询使用作品的时候这样说:
$query = $database->prepare("SELECT $field FROM
用户WHERE
ID = :ID LIMIT 1;");
我在做什么错?
bindParam会将字段视为变量并添加“around”值。你不能使用单引号来表示列名或表名。 – 2014-10-28 09:18:48