-1

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 を実行すると、array(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;
4

3 に答える 3

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');
于 2013-01-24T04:05:39.987 に答える
0

indexcreate、およびupdateは列の値であり、それらを「プレーンな」配列に入れたいと想定しています。デフォルトでは、結果は整数および列名キーとして格納されます。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

于 2013-01-24T04:03:41.180 に答える
0

まず最初に、Accesspage 列が 1 つしかなく、その列に index、create、update の 3 つの行が既に保存されていると想定しています。ユーザーのAccesspage値を検索したとき$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);
于 2013-01-24T04:22:05.147 に答える