2012-07-15 64 views
0

我在我的服務器上運行PHP 5.4.4,編譯時使用./configure。我有SQLite 3.7.7.1驅動程序的PDO。我創建了以下表格。PHP的PDO SQLite驅動程序正在返回重複日期

CREATE TABLE IF NOT EXISTS 
login (
    id PRIMARY KEY ON CONFLICT REPLACE, 
    given_name, 
    family_name, 
    gender 
); 
CREATE TABLE IF NOT EXISTS 
address (
    id, 
    street, 
    city, 
    state, 
    zip, 
    FOREIGN KEY(id) REFERENCES login(id) ON DELETE CASCADE 
); 
CREATE TABLE IF NOT EXISTS 
certification (
    id, 
    certification, 
    certification_expiration, 
    FOREIGN KEY(id) REFERENCES login(id) ON DELETE CASCADE 
); 

這種觀點。

CREATE VIEW "members" AS SELECT 
    login.id, login.given_name, login.family_name, login.gender, 
    address.street, address.city, address.state, address.zip, 
    certification.certification, certification.certification_expiration 
FROM 
    login, address, certification 
WHERE 
    login.id = certification.id 
    AND 
    login.id = address.id 

我查詢視圖是這樣的:

<?php foreach ($sql->query('SELECT * FROM members;') as $row): ?> 
        <tr> 
<?php  foreach ($row as $index => $col): ?> 
         <td><?=$index;?>.<?=$col;?></td> 
<?php  endforeach; ?> 
        </tr> 
<?php endforeach; ?> 

而且它產生這樣的輸出。

  <tr> 
       <td>id.123456789</td> 
       <td>0.123456789</td> 
       <td>given_name.Mark</td> 
       <td>1.Mark</td> 
       <td>family_name.Tomlin</td> 
       <td>2.Tomlin</td> 
       <td>gender.Male</td> 
       <td>3.Male</td> 
       <td>street.1 Some Lane</td> 
       <td>4.1 Some Lane</td> 
       <td>city.Anywhere</td> 
       <td>5.Anywhere</td> 
       <td>state.NY</td> 
       <td>6.NY</td> 
       <td>zip.12345</td> 
       <td>7.12345</td> 
       <td>certification.AEMT-P</td> 
       <td>8.AEMT-P</td> 
       <td>certification_expiration.2015-07-31</td> 
       <td>9.2015-07-31</td> 
      </tr> 

我想知道,爲什麼它給我id.0.,並given_name.1.,並且是有什麼我可以從查詢做過濾這種行爲呢?我只想得到id.或只是0.,但不是兩種類型。

+3

您可以從這裏開始:http://www.php.net/manual/en/pdostatement.fetch.php PDO :: FETCH_BOTH(默認值):返回一個由列名和0索引列號索引的數組如結果集中返回的那樣 – biziclop 2012-07-15 15:07:49

回答

1

這個固定它

$sql->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 

帽尖,biziclop爲協助。