PHP Data Objects

目次

PDO クラス

はじめに

PHP とデータベースサーバーの間の接続を表します。

クラス概要

PDO
/* 定数 */
public const int PDO::PARAM_NULL;
public const int PDO::PARAM_BOOL = 5;
public const int PDO::PARAM_INT = 1;
public const int PDO::PARAM_STR = 2;
public const int PDO::PARAM_LOB = 3;
public const int PDO::PARAM_STMT = 4;
public const int PDO::PARAM_INPUT_OUTPUT;
public const int PDO::PARAM_STR_NATL;
public const int PDO::PARAM_STR_CHAR;
public const int PDO::PARAM_EVT_ALLOC;
public const int PDO::PARAM_EVT_FREE;
public const int PDO::PARAM_EVT_EXEC_PRE;
public const int PDO::PARAM_EVT_EXEC_POST;
public const int PDO::PARAM_EVT_FETCH_PRE;
public const int PDO::PARAM_EVT_FETCH_POST;
public const int PDO::PARAM_EVT_NORMALIZE;
public const int PDO::FETCH_DEFAULT;
public const int PDO::FETCH_LAZY;
public const int PDO::FETCH_ASSOC;
public const int PDO::FETCH_NUM;
public const int PDO::FETCH_BOTH;
public const int PDO::FETCH_OBJ;
public const int PDO::FETCH_BOUND;
public const int PDO::FETCH_COLUMN;
public const int PDO::FETCH_CLASS;
public const int PDO::FETCH_INTO;
public const int PDO::FETCH_FUNC;
public const int PDO::FETCH_GROUP;
public const int PDO::FETCH_UNIQUE;
public const int PDO::FETCH_KEY_PAIR;
public const int PDO::FETCH_CLASSTYPE;
public const int PDO::FETCH_SERIALIZE;
public const int PDO::FETCH_PROPS_LATE;
public const int PDO::FETCH_NAMED;
public const int PDO::ATTR_AUTOCOMMIT;
public const int PDO::ATTR_PREFETCH;
public const int PDO::ATTR_TIMEOUT;
public const int PDO::ATTR_ERRMODE;
public const int PDO::ATTR_SERVER_VERSION;
public const int PDO::ATTR_CLIENT_VERSION;
public const int PDO::ATTR_SERVER_INFO;
public const int PDO::ATTR_CONNECTION_STATUS;
public const int PDO::ATTR_CASE;
public const int PDO::ATTR_CURSOR_NAME;
public const int PDO::ATTR_CURSOR;
public const int PDO::ATTR_ORACLE_NULLS;
public const int PDO::ATTR_PERSISTENT;
public const int PDO::ATTR_STATEMENT_CLASS;
public const int PDO::ATTR_FETCH_TABLE_NAMES;
public const int PDO::ATTR_FETCH_CATALOG_NAMES;
public const int PDO::ATTR_DRIVER_NAME;
public const int PDO::ATTR_STRINGIFY_FETCHES;
public const int PDO::ATTR_MAX_COLUMN_LEN;
public const int PDO::ATTR_EMULATE_PREPARES;
public const int PDO::ATTR_DEFAULT_FETCH_MODE;
public const int PDO::ATTR_DEFAULT_STR_PARAM;
public const int PDO::ERRMODE_SILENT;
public const int PDO::ERRMODE_WARNING;
public const int PDO::ERRMODE_EXCEPTION;
public const int PDO::CASE_NATURAL;
public const int PDO::CASE_LOWER;
public const int PDO::CASE_UPPER;
public const int PDO::NULL_NATURAL;
public const int PDO::NULL_EMPTY_STRING;
public const int PDO::NULL_TO_STRING;
public const string PDO::ERR_NONE;
public const int PDO::FETCH_ORI_NEXT;
public const int PDO::FETCH_ORI_PRIOR;
public const int PDO::FETCH_ORI_FIRST;
public const int PDO::FETCH_ORI_LAST;
public const int PDO::FETCH_ORI_ABS;
public const int PDO::FETCH_ORI_REL;
public const int PDO::CURSOR_FWDONLY;
public const int PDO::CURSOR_SCROLL;
/* メソッド */
public __construct(
    string $dsn,
    stringnull $username = null,
    stringnull $password = null,
    arraynull $options = null
)
public bool beginTransaction()
public bool commit()
public stringnull errorCode()
public array errorInfo()
public intfalse exec(string $statement)
public mixed getAttribute(int $attribute)
public static array getAvailableDrivers()
public bool inTransaction()
public stringfalse lastInsertId(stringnull $name = null)
public PDOStatementfalse prepare(string $query, array $options = [])
public PDOStatementfalse query(string $query, intnull $fetchMode = null)
public PDOStatementfalse query(string $query, intnull $fetchMode = PDO::FETCH_COLUMN, int $colno)
public PDOStatementfalse query(
    string $query,
    intnull $fetchMode = PDO::FETCH_CLASS,
    string $classname,
    array $constructorArgs
)
public PDOStatementfalse query(string $query, intnull $fetchMode = PDO::FETCH_INTO, object $object)
public stringfalse quote(string $string, int $type = PDO::PARAM_STR)
public bool rollBack()
public bool setAttribute(int $attribute, mixed $value)

PDOStatement クラス

はじめに

プリペアドステートメントを表します。ステートメント実行後は関連する結果セットを表します。

クラス概要

PDOStatement
implements IteratorAggregate
/* プロパティ */
public string $queryString;
/* メソッド */
public bool bindColumn(
    stringint $column,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
)
public bool bindParam(
    stringint $param,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
)
public bool bindValue(stringint $param, mixed $value, int $type = PDO::PARAM_STR)
public bool closeCursor()
public int columnCount()
public boolnull debugDumpParams()
public stringnull errorCode()
public array errorInfo()
public bool execute(arraynull $params = null)
public mixed fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0)
public array fetchAll(int $mode = PDO::FETCH_DEFAULT)
public array fetchAll(int $mode = PDO::FETCH_COLUMN, int $column)
public array fetchAll(int $mode = PDO::FETCH_CLASS, string $class, arraynull $constructorArgs)
public array fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback)
public mixed fetchColumn(int $column = 0)
public objectfalse fetchObject(stringnull $class = "stdClass", array $constructorArgs = [])
public mixed getAttribute(int $name)
public arrayfalse getColumnMeta(int $column)
public Iterator getIterator()
public bool nextRowset()
public int rowCount()
public bool setAttribute(int $attribute, mixed $value)
public bool setFetchMode(int $mode)
public bool setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno)
public bool setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, arraynull $constructorArgs = null)
public bool setFetchMode(int $mode = PDO::FETCH_INTO, object $object)

プロパティ

queryString

使ったクエリ文字列。

変更履歴

バージョン 説明
8.0.0 PDOStatement は、 Traversable ではなく、 IteratorAggregate を実装するようになりました。

PDOException クラス

はじめに

PDO が発するエラーを表します。あなた自身が書いたコードから PDOException をスローしてはいけません。 PHP の例外についての詳細な情報は、 例外 を参照ください。

クラス概要

PDOException
extends RuntimeException
/* プロパティ */
protected intstring $code;
public arraynull $errorInfo = null;
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
public Exception::__construct(string $message = "", int $code = 0, Throwablenull $previous = null)
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()

プロパティ

errorInfo

PDO::errorInfo あるいは PDOStatement::errorInfo に対応します。

code

SQLSTATE エラーコード。 Exception::getCode でアクセスします。

PDORow クラス

はじめに

フェッチモード PDO_FETCH_LAZY を使って PDOStatement::fetch をコールした場合に返される 結果セットの行を表します。

このクラスのオブジェクトは、インスタンス化できませんし、 シリアライズもできません。 デフォルトの queryString プロパティに加えて PDORow オブジェクトは アクセスした結果セットに存在するカラム名に対応するプロパティを作成します。

PDORow は、 PDO::FETCH_OBJPDO::FETCH_BOTH のモードを両方使ったかのように、返されるデータにアクセスできます。 つまり、返されるデータはオブジェクトのプロパティのようにアクセスできますし、 カラム名やカラムのオフセット番号でインデックスされた配列としてもアクセスできます。

プロパティが未定義の場合は、警告を発生させることなく null を返します。

クラス概要

final PDORow
/* プロパティ */
public string $queryString;

プロパティ

queryString

PDORow オブジェクトを返した PDOStatement が使うクエリストリング

エラー / 例外

任意のプロパティに書き込んだり、 unset を行おうとすると Error がスローされます。