我真的被困在这里......:/ 这是我的问题,我需要将PDO结果转换为PHP数组。像这样:
- Database -
John
Peter
James
我需要进入一个PHP数组,看起来像这样:
$names = array('John', 'Peter', 'James')
这是如何完成的,如何删除最后一个逗号以使其工作? (我尝试了一些想法,但根本没有运气)。
$conn = new PDO("mysql:host=$host;dbname=$db",$username,$password);
$conn->query('SET NAMES UTF8');
$sql = "SELECT * FROM tbl_name";
$q = $conn->prepare($sql);
$q->execute(array($title));
$q->setFetchMode(PDO::FETCH_BOTH);
while($data = $q->fetch()){ ????? (what to put here???) }
答案 0 :(得分:0)
有几种方法。假设包含名称的列名为someFunction
,
我们可以像这样使用循环:
name
或者您可以将单个列作为数组获取:
$names = array();
while($data = $q->fetch())
$names[] = $data['name'];
更新
根据要求,这是一个完整的示例,包括在PDO中使用查询参数的演示。在这里,我们选择$names = $q->fetchAll( PDO::FETCH_COLUMN, 'name' );
列tbl_name
列以title
开头的所有条目,并打印一个包含$title
列的列表:
name
注意,仅选择所需的列会更有效:$db = new PDO( "mysql:host=$host;dbname=$db", $username, $password, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
) );
$sth = $db->prepare( "
SELECT *
FROM tbl_name
WHERE title LIKE ?
" );
$sth->execute( array( "$title%" ) );
// put the names in an array
$names = [];
while( $row = $sth->fetch( PDO::FETCH_ASSOC ) )
$names[] = $row['name'];
。