【发布时间】:2016-03-14 03:30:05
【问题描述】:
我有一个用户 ID 列表,我的目标是使用该 ID 获取每个用户的名称
sql 变量打印:SELECT name FROM users WHERE unique_id = '56d4814fb37cf3.17691034'
如果我复制粘贴查询,则返回名称并与其他 ID 一起使用,但我不希望函数总是返回相同的名称,我想将变量 $userID 添加到我的查询中并返回名字
但这只有在我对 de id 进行硬编码时才有效
public function returnNameByID($userID){
//User ID: 56d4814fb37cf3.17691034
$sql = "SELECT name FROM users WHERE unique_id = '$userID'";
echo $sql; // Prints SELECT name FROM users WHERE unique_id = '56d4814fb37cf3.17691034 '
//Doesn't work $name returns Null
// $stmt = $this->conn->prepare("SELECT name FROM users WHERE unique_id = '$userID'");
//Doesn't work $name returns Null
$stmt = $this->conn->prepare($sql);
// Works $name returns name of the user
$stmt = $this->conn->prepare(" SELECT name FROM users WHERE unique_id = '56d4814fb37cf3.17691034 ' ");
$stmt->execute();
$result = $stmt->get_result()->fetch_assoc();
$name = $result["name"];
return $name;
编辑
require_once 'db_functons.php';
$db = new db_functions();
$userID = $_GET['userID'];
$mArray = array();
$mArray = $db->getFriendsList($userID);
//Printing the array Prints the correct id's
$name = $db->returnNameByID($mArray[0]);
echo $name;
【问题讨论】:
-
我删除了无关的数据库标签。随意为您真正使用的数据库添加标签。
-
'56d4814fb37cf3.17691034 '看到尾随空格了吗?删除它。 -
这一行有效: $stmt = $this->conn->prepare(" SELECT name FROM users WHERE unique_id = '56d4814fb37cf3.17691034 ' ");删除空格没有区别,但这 // $stmt = $this->conn->prepare("SELECT name FROM users WHERE unique_id = '$userID'");这 $stmt = $this->conn->prepare($sql);不要
-
我使用了 echo gettype ($mArray[0]);打印字符串
-
问题是函数中的
$userID末尾有一些随机的空白字符。在函数的第一行$userID = trim($userID);