PHP.mk документација

PDOStatement::getColumnMeta

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

pdostatement.getcolumnmeta.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdostatement.getcolumnmeta.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PDOStatement::getColumnMeta

Референца за `pdostatement.getcolumnmeta.php` со подобрена типографија и навигација.

pdostatement.getcolumnmeta.php

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

= NULL

public PDOStatement::getColumnMeta(int $column): array|false

Враќа метаподатоци за колона во сет на резултати

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Ги добива метаподатоците за колона со индекс 0 во сет на резултати како асоцијативен низ. Некои драјвери можеби не имплементираатPDOStatement::getColumnMeta() , бидејќи е опционално. Сепак, сите PDO драјвери

Параметри

column

документирани во прирачникот ја имплементираат оваа функција.

Вратени вредности

Колона со индекс 0 во сетот на резултати.

Враќа асоцијативен низ кој ги содржи следните вредности што ги претставуваат метаподатоците за една колона:
Име Име (константа)
native_type Метаподатоци на колона
driver:decl_type Типот на PHP што се користи за претставување на вредноста на колоната. Некои драјвери можеби не имплементираат.
flags Типот SQL што се користи за претставување на вредноста на колоната во базата на податоци. Ако колоната во сетот на резултати е резултат на функција, оваа вредност не се враќа од
name Сите знаменца поставени за оваа колона.
table Името на оваа колона како што го враќа базата на податоци.
len Името на табелата на оваа колона како што го враќа базата на податоци. -1 Должината на оваа колона. Нормално
precision за типови освен децимални со пловечка точка. 0 Должината на оваа колона. Нормално
pdo_type Нумеричката прецизност на оваа колона. Нормално PDO::PARAM_* constants.

Патеката до PHP скриптата што треба да се провери. false ако бараната колона не постои во множеството резултати, или ако не постои множество резултати.

Примери

Пример #1 Враќање метаподатоци за колона

Следниот пример ги прикажува резултатите од враќањето на метаподатоците за една колона генерирана од функција (COUNT) во PDO_SQLITE драјвер.

<?php
$select
= $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

Види Исто така

Белешки од корисници 6 белешки

colin at fusionbox dot com
пред 17 години
This method is supported in the MySQL 5.0+ driver.  It can be used for object hydration:

<?php

$pdo_stmt = $dbh->execute('SELECT discussion.id, discussion.text, comment.id, comment.text FROM discussions LEFT JOIN comments ON comment.discussion_id = discussion.id');

foreach(range(0, $pdo_stmt->columnCount() - 1) as $column_index)
{
  $meta[] = $pdo_stmt->getColumnMeta($column_index);
}

while($row = $pdo_stmt->fetch(PDO::FETCH_NUM))
{
  foreach($row as $column_index => $column_value)
  {
    //do something with the data, using the ids to establish the discussion.has_many(comments) relationship.
  }
}

?>

If you are building an ORM, this method is very useful to support more natural SQL syntax.  Most ORMs require the column names to be aliases so that they can be parsed and turned into objects that properly represent has_one, has_many, many_to_many relationships.
asohn aircanopy net
пред 18 години
I found a short discussion related to this function at 
http://www.sitepoint.com/forums/showthread.php?t=497257

I haven't tried it (yet?) but hopefully someone can find it useful.
Родриго Силва
пред 6 години
native_type has the following mapping for MySQL:
(tested in PHP 5.4, MySQL 5.7)

INT(11) (PKs) => LONG
TINYINT(4)    => TINY
DOUBLE        => DOUBLE
VARCHAR       => VAR_STRING
CHAR          => STRING
DATE          => DATE
Functions     => VAR_STRING
- DATEFORMAT()
- CONCAT()
samer dot mhana at gmail dot com
пред 4 години
Searching for LONGLONG in php-src: 
    
$datatypes = array(
        MYSQLI_TYPE_TINY => "TINY",
        MYSQLI_TYPE_SHORT => "SHORT",
        MYSQLI_TYPE_LONG => "LONG",
        MYSQLI_TYPE_FLOAT => "FLOAT",
        MYSQLI_TYPE_DOUBLE => "DOUBLE",
        MYSQLI_TYPE_TIMESTAMP => "TIMESTAMP",
        MYSQLI_TYPE_LONGLONG => "LONGLONG",
        MYSQLI_TYPE_INT24 => "INT24",
        MYSQLI_TYPE_DATE => "DATE",
        MYSQLI_TYPE_TIME => "TIME",
        MYSQLI_TYPE_DATETIME => "DATETIME",
        MYSQLI_TYPE_YEAR => "YEAR",
        MYSQLI_TYPE_ENUM => "ENUM",
        MYSQLI_TYPE_SET    => "SET",
        MYSQLI_TYPE_TINY_BLOB => "TINYBLOB",
        MYSQLI_TYPE_MEDIUM_BLOB => "MEDIUMBLOB",
        MYSQLI_TYPE_LONG_BLOB => "LONGBLOB",
        MYSQLI_TYPE_BLOB => "BLOB",
        MYSQLI_TYPE_VAR_STRING => "VAR_STRING",
        MYSQLI_TYPE_STRING => "STRING",
        MYSQLI_TYPE_NULL => "NULL",
        MYSQLI_TYPE_NEWDATE => "NEWDATE",
        MYSQLI_TYPE_INTERVAL => "INTERVAL",
        MYSQLI_TYPE_GEOMETRY => "GEOMETRY",
    );
jcastromail на yahoo точка es
пред 6 години
This method is supported by sql server too (at least the version of the PDO driver 5.7.1)

Example:

array(8) {
  ["flags"]=>
  int(0)
  ["sqlsrv:decl_type"]=>
  string(12) "int identity"
  ["native_type"]=>
  string(6) "string"
  ["table"]=>
  string(0) ""
  ["pdo_type"]=>
  int(2)
  ["name"]=>
  string(8) "IdCompra"
  ["len"]=>
  int(10)
  ["precision"]=>
  int(0)
}
frankno dot 94 at gmail dot com
пред 6 години
I recently added a note to a small function that went through the results of PDOStatement::fetch and mapped columns to integer or float types.

I forgot to test for columns that can have a null value!

I'm updating the code here, sorry.

This website doesn't let me edit the original comment, so I'm just gonna link to a gist in case it needs even further fixes.

https://gist.github.com/AeonFr/db3b2a8a95753076d9e4da42d29365d2

I basically added this code:

<?php
if ($value === null) {
   continue;
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.