0

我很好地打开了我的 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: 
4

2 回答 2

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

于 2012-07-03T13:39:10.943 回答
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。

于 2012-07-03T13:33:13.133 回答