我打开我的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:
答案 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。