php
  • sqlite
  • sqlite3
  • 2017-04-25 178 views 0 likes 
    0

    第一次玩SQLite時,我創建了一個數據庫和表,並將id設置爲primary key uniquePHP-SQLite意外返回數組結果

    我插入一些數據到表中,可以看到數據時,我做的:

    SELECT * FROM members;

    然而,當我運行下面的查詢,我沒有得到我希望的結果。

    $result = $db->query("SELECT * FROM members WHERE plan = 'User' AND id = '$users_id'"); 
        echo "<pre>"; 
        print_r($result->fetchArray()); 
        echo "</pre>"; 
    

    我得到:

    Array 
    (
        [0] => 124578986532-784512986452 
        [id] => 124578986532-784512986452 
        [1] => User 
        [plan] => User 
        [2] => 54890 
        [phone] => 54890 
        [3] => 698-78450 
        [staffID] => 698-78450 
        [4] => WestWing 
        [location] => WestWing 
        [5] => 1 
        [active] => 1 
    ) 
    

    這是正確的結果,但爲什麼會重複每一個返回的條目?

    ie:爲什麼[0] & [id],[1] & [plan]

    由於每個用戶ID是唯一的搜索它只會返回一個結果集,我如何使用結果作爲我可以在頁面內的其他地方使用的變量?

    例如:$id = $result['id']

    感謝

    +4

    'fetchArray'將結果行作爲關聯或數字索引數組或兩者返回。 – Saty

    +1

    閱讀手冊,__please__ –

    +2

    http://php.net/manual/en/sqlite3result.fetcharray.php :)特別是'Parameters'部分 – hassan

    回答

    0

    fetcharray包含numerical arrayassociative array,所以你的結果應該是

    名爲指標陣列

    $result = $db->query("SELECT * FROM members WHERE plan = 'User' AND id = '$users_id'"); 
    echo "<pre>"; 
    print_r($result->fetchArray(PDO::FETCH_ASSOC)); 
    echo "</pre>"; 
    

    這裏Crossponding數據

    $result->fetchArray(PDO::FETCH_BOTH) - 行是具有數字和指定索引的數組

    $result->fetchArray(PDO::FETCH_ASSOC) - 行是具有命名索引的數組。

    $result->fetchArray(PDO::FETCH_NUM) - 行是具有數字索引的數組。

    相關問題