SQLITE3查询不会在PHP中返回我想要的内容

时间:2012-07-03 13:26:30

标签: php sql database sqlite

我打开我的sq3d罚款,但当我尝试在我的一张桌子上做一个SELECT时,它似乎没有返回我所怀疑的结果。这是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是表格。

我希望在fetchArray()

中返回1,2,3和4

我得到的回报是:

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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。