sqlite_field_name

SQLiteResult::fieldName

SQLiteUnbuffered::fieldName

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

sqlite_field_name -- SQLiteResult::fieldName -- SQLiteUnbuffered::fieldNameReturns the name of a particular field

Description

string sqlite_field_name ( resource $result , int $field_index )

Object oriented style (method):

string SQLiteResult::fieldName ( int $field_index )
string SQLiteUnbuffered::fieldName ( int $field_index )

Given the ordinal column number, field_index, sqlite_field_name() returns the name of that field in the result set result.

Parameters

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

field_index

The ordinal column number in the result set.

Return Values

Returns the name of a field in an SQLite result set, given the ordinal column number; FALSE on error.

The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the sqlite.assoc_case configuration option.

Коментарии

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>";

?>
2007-06-22 04:03:13
http://php5.kiev.ua/manual/ru/function.sqlite-field-name.html
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;
}
?>
2010-11-10 01:58:17
http://php5.kiev.ua/manual/ru/function.sqlite-field-name.html
Автор:
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)));
?>
2011-01-12 07:27:08
http://php5.kiev.ua/manual/ru/function.sqlite-field-name.html

    Поддержать сайт на родительском проекте КГБ