2012-07-03 102 views
0

我打開我的sq3d罰款,但是當我嘗試在我的一個表上執行SELECT時,它似乎不返回我忽視的結果。這裏是PHP代碼:SQLITE3查詢不會返回我想要的內容在PHP內

$buildingArray = array(); 

class MyDB extends SQLite3 
{ 
function __construct() 
{ 
    $this->open('Database.s3db'); 
} 
} 


$db = new MyDB(); 

$query1 = "SELECT * FROM tbl_uploadData"; 
$result1 = $db->query($query1); 
$u = $result1->fetchArray(); 
echo "<br/>Size of u: ".sizeOf($u)."<br/>"; 

for($i=0; $i<sizeOf($u); $i++){ 
echo "<br/>Items: ".$u[$i]."<br/>"; 
} 

這是在我的數據庫:

tbl_uploadData:B_ID - 1,2,3,4:其中1,2,3,4都內的物品字段,b_id字段名稱和tbl_uploadData表。

我期望得到1,2,3,4個在fetchArray()返回

所有我得到的回報是:

Size of u: 2 
Items: 1 
Notice: Undefined offset: 1 in C:\xampp\htdocs\PHPexcel\Tests\StrategicExcel.php on line 72 
Items: 

回答

2

下面是解決方案,如間隔猴子提到的,fetchArray()一次只返回一個結果。所以通過添加一個while循環和一些對我的b_id的引用,它應該可以工作。我修改我的代碼:

$databaseName = "Database.s3db"; 

$db2 = new SQLite3($databaseName); 
    $sql = "SELECT b_id FROM tbl_uploadData"; 
    $result = $db2->query($sql);//->fetchArray(SQLITE3_ASSOC); 
    $row = array(); 

    $i = 0; 
    while($res = $result->fetchArray(SQLITE3_ASSOC)){ 
     if(!isset($res['b_id'])) continue; 
      $row[$i]['b_id'] = $res['b_id']; 
      $i++; 
     } 
     print_r($row); 

希望這有助於如果有人遇到在未來的這個問題,TY

0

fetchArray()一次只得到1行,你需要爲每一行調用它。 http://uk3.php.net/manual/en/function.sqlite-fetch-array.php

您應該能夠:

while ($u = $result1->fetchArray()) { 
    echo "<br/>Items: ".$u['b_id']."<br/>"; 
} 

我不知道爲什麼的sizeof($ u)爲雖然返回2。

+0

我已經找到了另一種方式來做到這一點,還是要謝謝你,我沒有知道fetchArray()每次只返回一行,所以謝謝! – cwiggo

相關問題