所以我通过 PDO 从数据库中提取一列,我想直接回显它而不分配变量。
<?php echo ($db->query("SELECT name FROM categories WHERE code = '{$_GET['code']}' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
这会引发数组到字符串错误,当我使用 json_encode 函数时,它会回显 {"name":"Boys Games"}。
所以是的,我知道我可以创建一个变量并在打印时获取“名称”元素。但我想知道是否有一种方法无需创建变量而只需打印它。
要直接回显“name”列而不将其分配给变量,您可以通过直接从获取的数组访问“name”元素并回显它来修改代码。以下是如何做到这一点的示例:
<?php
$name = $db->query("SELECT name FROM categories WHERE code = '{$_GET['code']}' LIMIT 1")->fetch(PDO::FETCH_ASSOC)['name'];
echo $name;
?>
在此示例中,我们从数据库中获取行并使用数组索引运算符 [ 'name' ] 直接访问所获取数组中的 'name' 元素。最后,我们回显“名称”列的值。
通过直接访问元素,您无需在回显之前将其分配给变量。相反,您可以直接回显它。
使用
fetchColumn()
而不是 fetch()
返回单个列值。它默认为第一列,当查询仅返回一列时,这就是您想要的。
<?php echo ($db->query("SELECT name FROM categories WHERE code = '{$_GET['code']}' LIMIT 1")->fetchColumn();