我使用select sql语句PDO fetchData,
$user = 'admin';
sql = 'SELECT AccessPage FROM accessrights where UserName = '$user'';
在数据库中,结果如下所示:
-----------
Access Page
-----------
- index
+ create
- update
我将它存储在变量$ result
中如何将$ result格式设置为数组呢?
$result = array('index','create','update');
另一个问题,
我在我的函数中使用了代码:但是当我执行var_dump时,它会返回一个数组(0){}值。
这是我的功能:
$user = CHtml::encode(Yii::app()->user->name);
$connectionString[0] = Yii::app()->params['dbhandler2'];
$dbhandler3 = new DBHandler($connectionString[0]);
$dbhandler3->open();
$dbhandler3->prepare("SELECT AccessPage FROM accessrights where UserName ='$user'");
$dbhandler3->execute();
$this->result2 = $dbhandler3->fetchAllData();
$dbhandler3->close();
$yourarrayname = array();
while ($row = $dbhandler3->fetchAllData()) {
$yourarrayname[] = $row['AccessPage'];
}
$this->access = $yourarrayname;
答案 0 :(得分:2)
使用以下代码
$user = 'admin';
$sql = "SELECT AccessPage FROM accessrights where UserName = '$user'";
$sth = $dbh->prepare($sql);
$sth->execute();
/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
print_r($result); // the $result will be array array('index','create','update');
答案 1 :(得分:0)
我假设index
,create
和update
是列值,您希望它们位于" plain"阵列。默认设置是将结果存储为整数和列名称键。您希望将fetchmode设置为整数键:$stmt->setFetchMode(PDO::FETCH_NUM)
或$stmt->fetch(PDO::FETCH_NUM)
。 http://php.net/manual/en/pdostatement.setfetchmode.php http://php.net/manual/en/pdostatement.fetch.php
答案 2 :(得分:0)
首先,我假设您只有一个列访问权限
在该列中,您已经保存了三行索引,创建,更新。当您搜索用户$user
的访问页值时。这将返回分配给$ user的值。
$user = 'admin';
$sql = 'SELECT AccessPage FROM accessrights where UserName = '$user'';
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
现在这个$ result是一个带有键' AccessPage '
的关联数组如果你想制作一个数组,那么你应该尝试这样
$yourarrayname=array();
while ($row = $sth->fetch(PDO::FETCH_ASSOC))
{
$yourarrayname[]= $row['AccessPage'] ;
}
print_r($yourarrayname);