【发布时间】:2018-08-27 16:07:13
【问题描述】:
我正在尝试从一个包含几行的 db 表创建一个数组,例如:
--------------
id | name
--------------
1 | value 1
2 | value 2
3 | value 3
--------------
我希望创建的数组尽可能简单,例如 value1,value2,value3
我正在使用这个功能
function getAll()
{
//select all data
$sql = "SELECT name FROM " . $this->table_name . " ORDER BY id";
$prep_state = $this->db_conn->prepare($sql);
$prep_state->execute();
$row = $prep_state->fetch(PDO::FETCH_ASSOC);
$this->name = $row['name'];
}
有没有一种简单的方法可以做到这一点,也许使用另一种 PDO 模式,例如使用 PDO::FETCH_UNIQUE 完成,或者应该采取不同的方法?
更新 - 这样就成功了(感谢@u_mulder)
function getAll()
{
$sql = "SELECT name FROM " . $this->table_name . " ORDER BY id";
$prep_state = $this->db_conn->prepare($sql);
$prep_state->execute();
$names = $prep_state->fetchAll(PDO::FETCH_COLUMN, 0);
return(implode(",",$names));
}
【问题讨论】:
-
这里的
Create single array是什么意思? -
一维...像数组(value1,value2,value3);
-
既然要返回所有行,为什么不使用
fetchAll而不是fetch? -
是的,fetchAll 做到了。谢谢