sqlite_field_name

SQLiteResult->fieldName

SQLiteUnbuffered->fieldName

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult->fieldName -- SQLiteUnbuffered->fieldNameSonuç kümesindeki belli bir alanın ismini döndürür

Açıklama

sqlite_field_name ( resource $sonuç , int $alan_indisi ) : string

Nesne yönelimli kullanım

fieldName ( int $alan_indisi ) : string
fieldName ( int $alan_indisi ) : string

sonuç ile belirtilen sonuç kümesinden, sütun numarası alan_indisi ile belirtilen alanın ismini döndürür.

Değiştirgeler

sonuç

SQLite sonuç özkaynağı. Nesne yönelimli kullanımda bu değiştirgeye gerek yoktur.

alan_indisi

Sonuç kümesindeki sütunun sıra numarası.

Dönen Değerler

Bir hata oluşursa FALSE yoksa alan ismini bir dizge olarak döndürür.

SQLITE_ASSOC ve SQLITE_BOTH sabitleri kullanılarak döndürülen sütun isimlerinin harf büyüklükleri sqlite.assoc_case php.ini yapılandırma yönergesinin değerine uygun olarak döndürülür.

add a note add a note

User Contributed Notes 3 notes

up
1
admin at psychonautical dot org
14 years ago
It's not the most elegant way, but it works:

<?php
function sqlite_field_names($db, $tablename){
   
$sq5=sqlite_single_query($db, "SELECT sql FROM sqlite_master WHERE tbl_name='".$tablename."'", SQLITE_NUM);
   
$kommando=$sq5[0];
   
$cut=strtok($kommando,"(");
    while(
$fieldnames[]=strtok(",")) {};
   
array_pop($fieldnames);
    foreach(
$fieldnames as $no => $field)
        if (
strpos($field, "PRIMARY KEY")){
           
strtok($field,"(");
           
$primary=strtok(")");
            unset(
$fieldnames[$no]);
        } else
           
$fieldnames[$no]=strtok($field, " ");
    return
$fieldnames;
}
?>
up
-1
rrf5000 at psu dot edu
17 years ago
While working with SQLite using its object-oriented mode, I found need to display a column/field name without knowing what it was in advance.  I couldn't find any examples on the Internet, just this document.  So, for anyone who happens to need to do this, here's an example.

<?php

$db
= "db/database.sqlite";

// create new database (OO interface)
$dbo = new SQLiteDatabase("$db");

// create table foo and insert sample data
$dbo->query("
CREATE TABLE foo(id INTEGER PRIMARY KEY, name CHAR(255));
INSERT INTO foo (name) VALUES('Ilia1');
INSERT INTO foo (name) VALUES('Ilia2');
INSERT INTO foo (name) VALUES('Ilia3');
"
);

$query = "SELECT * FROM foo;";

$result = $dbo->query($query) or die("Error in query");

echo
"
<table border='1' cellpadding='10'>
<tr>
  <td>"
.$result->fieldName(0)."</td>
  <td>"
.$result->fieldName(1)."</td>
</tr>"
;

// iterate through the retrieved rows
while ($result->valid()) {
 
// fetch current row
 
$row = $result->current();
  echo
"
<tr>
  <td>"
.$row[0]."</td>
  <td>"
.$row[1]."</td>
</tr>"
;
 
// proceed to next row
 
$result->next();
}

echo
"</table>";

?>
up
-2
Jan Holeek
13 years ago
This code works with SQlite version 3 databases.
<?php
function sqlite_field_names($dbfile, $tablename){
    try
      {
   
$db = new PDO("sqlite:".$dbfile);
   
$sql=$db->query("SELECT sql FROM sqlite_master WHERE tbl_name='".$tablename."'");
    foreach(
$sql as $row)
        {
       
$fields = $row["sql"];
        }
   
$db = NULL;
   }
   catch(
PDOException $e)
   {
    print
"Exception : ".$e->getMessage();
   }
   
$cut=strtok($fields,"(");
    while(
$fieldnames[]=strtok(",")) {};
   
array_pop($fieldnames);
    foreach(
$fieldnames as $no => $field)
        if (
strpos($field, "PRIMARY KEY")){
           
strtok($field,"(");
           
$primary=strtok(")");
            unset(
$fieldnames[$no]);
        } else
           
$fieldnames[$no]=strtok($field, " ");
    return
$fieldnames;
}

print_r(array_values(sqlite_field_names($dbfile, $tablename)));
?>
To Top