获取多个列
Fetch more than one column
我创建了一个在您输入单词部分时自动完成的字段。它使用 mysql PDO 进行查询。我的请求是根据患者的姓氏提出的。效果不错。
现在,我想在姓氏之后显示名字。
我的函数如下:
function searchForKeyword($keyword) {
$db = connect();
$stmt = $db->prepare("SELECT lastname_patient, firstname_patient FROM `patients` WHERE lastname_patient LIKE ? ORDER BY lastname_patient");
$keyword = $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 100);
$isQueryOk = $stmt->execute();
$results = array();
if ($isQueryOk) {
$results =$stmt->fetchAll(PDO::FETCH_COLUMN);
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}
$db = null;
return $results;
}
我认为问题出在这一行 $results =$stmt->fetchAll(PDO::FETCH_COLUMN);
它只获取一列。
如何更改以在姓氏之后显示患者的名字? (按姓氏搜索)
尝试
fetchall(PDO::FETCH_ASSOC) 而不是 fetchAll(PDO::FETCH_COLUMN).
PDO::FETCH_ASSOC 将在一个关联数组中为您提供您想要的所有结果。
一次fetch执行一次效率更高
$results = array();
if ($isQueryOk) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($result, $row['lastname_patient'].' '.$row['firstname_patient']);
}
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}
在查询中使用 CONCAT:
SELECT CONCAT(lastname_patient, ', ', firstname_patient) as fullname
FROM patients
WHERE lastname_patient LIKE ?
ORDER BY lastname_patient
我创建了一个在您输入单词部分时自动完成的字段。它使用 mysql PDO 进行查询。我的请求是根据患者的姓氏提出的。效果不错。
现在,我想在姓氏之后显示名字。
我的函数如下:
function searchForKeyword($keyword) {
$db = connect();
$stmt = $db->prepare("SELECT lastname_patient, firstname_patient FROM `patients` WHERE lastname_patient LIKE ? ORDER BY lastname_patient");
$keyword = $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 100);
$isQueryOk = $stmt->execute();
$results = array();
if ($isQueryOk) {
$results =$stmt->fetchAll(PDO::FETCH_COLUMN);
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}
$db = null;
return $results;
}
我认为问题出在这一行 $results =$stmt->fetchAll(PDO::FETCH_COLUMN);
它只获取一列。
如何更改以在姓氏之后显示患者的名字? (按姓氏搜索)
尝试
fetchall(PDO::FETCH_ASSOC) 而不是 fetchAll(PDO::FETCH_COLUMN).
PDO::FETCH_ASSOC 将在一个关联数组中为您提供您想要的所有结果。
一次fetch执行一次效率更高
$results = array();
if ($isQueryOk) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
array_push($result, $row['lastname_patient'].' '.$row['firstname_patient']);
}
} else {
trigger_error('Error executing statement.', E_USER_ERROR);
}
在查询中使用 CONCAT:
SELECT CONCAT(lastname_patient, ', ', firstname_patient) as fullname
FROM patients
WHERE lastname_patient LIKE ?
ORDER BY lastname_patient