Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO返回数组('value1','value2')_Php_Mysql_Arrays_Pdo - Fatal编程技术网

Php PDO返回数组('value1','value2')

Php PDO返回数组('value1','value2'),php,mysql,arrays,pdo,Php,Mysql,Arrays,Pdo,Im使用select sql语句PDO FETCHTDATA $user = 'admin'; sql = 'SELECT AccessPage FROM accessrights where UserName = '$user''; 在数据库中,结果如下所示: ----------- Access Page ----------- - index + create - update 我将它存储在变量$result中 如何将$result格式设置为这样的数组 $result = a

Im使用select sql语句PDO FETCHTDATA

$user = 'admin';
sql = 'SELECT AccessPage FROM accessrights where UserName = '$user'';
在数据库中,结果如下所示:

-----------
Access Page
-----------
 - index

 + create

 - update
我将它存储在变量$result中

如何将$result格式设置为这样的数组

$result = array('index','create','update');
另一个问题,

我在函数中使用了代码:但是当我使用var_dump时,它会重新运行一个array0{}值

以下是我的功能:

    $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;
我假设index、create和update是列值,您希望它们位于普通数组中。默认情况下,将结果存储为整数键和列名键。您希望将fetchmode设置为整数键:$stmt->setFetchModePDO::FETCH_NUM或$stmt->fetchPDO::FETCH_NUM。http://php.net/manual/en/pdostatement.fetch.php使用以下代码

 $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');

首先,我假设您只有一列访问页面 在该列中,您已经保存了三行索引、创建和更新。搜索用户$user的Accesspage值时。这将返回分配给$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);

你们应该使用事先准备好的陈述。总是接受答案,从stackoverflowers那里得到巨大的帮助!哦,我尝试了你上次给我的代码,但它只返回一个空数组,我在topWOw编辑了我的代码,我使用了这段代码,效果很好,谢谢