我正在返回連接到用戶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