如何使SQLite3获取数组更干净


How to make SQLite3 fetched array more clean?

我使用SQLite3为我的一个web应用程序。一切正常。我可以访问数据库,创建和所有东西。

但. .当我使用以下代码检索信息时:

function db_select($username, $password, $database = 'Railway') {
$db = db_connect($database);
$result = $db->query("SELECT * FROM users ") or die('Query failed');
$rowss = array();
while ($row = $result->fetchArray()) {
    $rowss[] = $row;
}
print_r($rowss);
}

输出
Array ( 
[0] => Array ( [0] => John123 [username] => John123 
[1] => foo [password] => foo 
[2] => John [fname] => John 
[3] => Smith [lname] => Smith 
[4] => 21 [age] => 21 
[5] => john@gmail.com [email] => john@gmail.com 
[6] => Male [sex] => Male ) )

这个数组没有意义,如何单独检索信息,如fname, lname, age, username等?

是否有办法将其转换为以下形式?

Array (
username => John123,
password => foo,
fname => John
lname => Smith
)

Try

$result->fetchArray(SQLITE3_ASSOC)

既然你似乎对列号不感兴趣,

从PHP文档中找到这个答案。

$row = array(); 
    $i = 0; 
     while($res = $result->fetchArray(SQLITE3_ASSOC)){ 
         if(!isset($res['username'])) continue; 
          $row[$i]['username'] = $res['username']; 
          $row[$i]['fname'] = $res['fname']; 
          $row[$i]['lname'] = $res['lname']; 
          $row[$i]['age'] = $res['age']; 
          $row[$i]['email'] = $res['email']; 
          $row[$i]['sex'] = $res['sex']; 
          $row[$i]['phone'] = $res['phone']; 
          $i++; 
      } 

print_r($row);

输出这个漂亮的数组。

Array ( 
[0] => Array ( 
[username] => John123 
[fname] => John 
[lname] => Smith 
[age] => 21 
[email] => john@gmail.com 
[sex] => Male 
)