mirror of
https://github.com/php/doc-ja.git
synced 2026-03-23 22:52:11 +01:00
329 lines
9.7 KiB
XML
329 lines
9.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: 59ce48edd7eb51e3f9bc19828386ce053dd95690 Maintainer: takagi Status: ready -->
|
|
<reference xmlns="http://docbook.org/ns/docbook" xml:id="ref.pdo-cubrid"><?phpdoc extension-membership="pecl" ?>
|
|
<title>CUBRID PDO ドライバ (PDO_CUBRID)</title>
|
|
<titleabbrev>CUBRID PDO ドライバ</titleabbrev>
|
|
<partintro>
|
|
|
|
<section xml:id="pdo-cubrid.intro">&reftitle.intro;
|
|
<simpara>
|
|
PDO_CUBRID は <link linkend="intro.pdo">PHP Data Objects (PDO) インターフェイス</link>
|
|
を実装したドライバで、PHP から CUBRID データベースにアクセスするためのものです。
|
|
</simpara>
|
|
<note><simpara>
|
|
現在のバージョンの PDO_CUBRID は、持続的接続に対応していません。
|
|
</simpara></note>
|
|
</section>
|
|
|
|
<!-- Information found in configure.xml -->
|
|
&reference.pdo-cubrid.configure;
|
|
|
|
<section xml:id="ref.pdo-cubrid.features">
|
|
<title>PDO_CUBRID の機能</title>
|
|
|
|
<section>
|
|
<title>スクロール可能なカーソル</title>
|
|
<simpara>
|
|
PDO_CUBRID はスクロール可能なカーソルをサポートしており、デフォルトの型は前進のみのカーソルです。
|
|
<function>PDO::prepare</function> の driver_options パラメータを使えばカーソルの型を変えることができます。
|
|
</simpara>
|
|
</section>
|
|
|
|
<section>
|
|
<title>タイムアウト</title>
|
|
<simpara>
|
|
PDO_CUBRID は sql ステートメントの実行時のタイムアウトの設定をサポートしています。
|
|
<function>PDO::setAttribute</function> を使えばタイムアウトの値を設定できます。
|
|
</simpara>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Autocommit_mode およびトランザクション</title>
|
|
|
|
<simpara>
|
|
PDO_CUBRID は自動コミットとトランザクションをサポートしており、
|
|
自動コミットモードがデフォルトで有効になっています。
|
|
<function>PDO::setAttribute</function> を使えば状態を変更することができます。
|
|
</simpara>
|
|
|
|
<simpara>
|
|
<function>PDO::beginTransaction</function> でトランザクションを開始すると
|
|
autocommit_mode は自動的に無効となり、<function>PDO::commit</function> あるいは
|
|
<function>PDO::rollBack</function> の後で元の状態に戻します。
|
|
</simpara>
|
|
|
|
<note>
|
|
<simpara>
|
|
autocommit_mode を無効にする前に、
|
|
それまでの作業は自動的にコミットされることに注意しましょう。
|
|
</simpara>
|
|
</note>
|
|
</section>
|
|
|
|
<section>
|
|
<title>複数の SQL 文</title>
|
|
|
|
<simpara>
|
|
PDO_CUBRID は複数の SQL 文をサポートしています。
|
|
複数の SQL 文はセミコロン (<literal>;</literal>) で区切られます。
|
|
</simpara>
|
|
</section>
|
|
|
|
<section>
|
|
<title>スキーマ情報</title>
|
|
|
|
<simpara>
|
|
PDO_CUBRID では
|
|
<function>PDO::cubrid_schema</function> 関数を用意しており、これでスキーマ情報を取得します。
|
|
</simpara>
|
|
</section>
|
|
|
|
<section>
|
|
<title>LOBs</title>
|
|
|
|
<simpara>
|
|
PDO_CUBRID は BLOB/CLOB データ型をサポートしています。PDO における LOB
|
|
はストリームで表現されているので、LOB を追加するにはストリームをバインドし、
|
|
LOB を取得するには CUBRID PDO が返すストリームを読み込みます。
|
|
</simpara>
|
|
|
|
<example>
|
|
<title>CUBRID PDO での LOB の追加</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$fp = fopen('lob_test.png', 'rb');
|
|
|
|
$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";
|
|
|
|
$stmt = $dbh->prepare($sql_stmt);
|
|
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
|
|
$ret = $stmt->execute();
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>CUBRID PDO での LOB の取得</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$sql_stmt = "SELECT content FROM lob_test WHERE name='lob_test.png'";
|
|
|
|
$stmt = $dbh->prepare($sql_stmt);
|
|
$stmt->execute();
|
|
$result = $stmt->fetch(PDO::FETCH_NUM);
|
|
|
|
header("Content-Type: image/png");
|
|
fpassthru($result[0]);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</section>
|
|
|
|
<section>
|
|
<title>カラムのメタ情報</title>
|
|
|
|
<para>
|
|
CUBRID PDO における <function>PDOStatement::getColumnMeta</function>
|
|
は、次の値を含む連想配列を返します。
|
|
<simplelist>
|
|
<member>type</member>
|
|
<member>name</member>
|
|
<member>table</member>
|
|
<member>def</member>
|
|
<member>precision</member>
|
|
<member>scale</member>
|
|
<member>not_null</member>
|
|
<member>auto_increment</member>
|
|
<member>unique_key</member>
|
|
<member>multiple_key</member>
|
|
<member>primary_key</member>
|
|
<member>foreign_key</member>
|
|
<member>reverse_index</member>
|
|
<member>reverse_unique</member>
|
|
</simplelist>
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>コレクションデータ型</title>
|
|
|
|
<simpara>
|
|
PDO_CUBRID は SET/MULTISET/SEQUENCE といったコレクションに対応しています。
|
|
データ型を省略した場合のデフォルトは char で、次の例のようになります。
|
|
</simpara>
|
|
|
|
<example>
|
|
<title>CUBRID PDO で、デフォルトのデータ型のセットを追加する例</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
|
|
$cubrid_pdo = new PDO($conn_str, 'dba', '');
|
|
|
|
$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
|
|
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");
|
|
|
|
$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
|
|
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
|
|
$data = array("abc","def","ghi");
|
|
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
|
|
$ret = $stmt->execute();
|
|
var_Dump($ret);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>CUBRID PDO でのセットの追加でデータ型を指定する例</title>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$conn_str ="cubrid:dbname=demodb;host=localhost;port=33000";
|
|
$cubrid_pdo = new PDO($conn_str, 'dba', '');
|
|
|
|
$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
|
|
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");
|
|
|
|
$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
|
|
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
|
|
$data = array(1,2,3,4);
|
|
$ret = $stmt->bindParam(1, $data, 0,0,"int");
|
|
$ret = $stmt->execute();
|
|
var_Dump($ret);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
|
|
<para>
|
|
CUBRID のバインドデータ型 (<methodname>PDOStatement::bindParam</methodname> の五番目のパラメータ):
|
|
<simplelist>
|
|
<member>CHAR</member>
|
|
<member>STRING</member>
|
|
<member>NCHAR</member>
|
|
<member>VARNCHAR</member>
|
|
<member>BIT</member>
|
|
<member>VARBIT</member>
|
|
<member>NUMERIC</member>
|
|
<member>NUMBER</member>
|
|
<member>INT</member>
|
|
<member>SHORT</member>
|
|
<member>BIGINT</member>
|
|
<member>MONETARY</member>
|
|
<member>FLOAT</member>
|
|
<member>DOUBLE</member>
|
|
<member>DATE</member>
|
|
<member>TIME</member>
|
|
<member>DATETIME</member>
|
|
<member>TIMESTAMP</member>
|
|
</simplelist>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
|
|
<!-- Information found in constants.xml -->
|
|
&reference.pdo-cubrid.constants;
|
|
|
|
</partintro>
|
|
|
|
<refentry xml:id="ref.pdo-cubrid.connection">
|
|
<refnamediv>
|
|
<refname>PDO_CUBRID DSN</refname>
|
|
<refpurpose>CUBRID データベースへの接続</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<para>
|
|
PDO_CUBRID のデータソース名 (DSN) は次の要素をセミコロン区切りで表したものです:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>DSN プレフィックス</term>
|
|
<listitem>
|
|
<para>
|
|
DSN プレフィックスは <userinput>cubrid:</userinput> です。
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>host</literal></term>
|
|
<listitem>
|
|
<simpara>
|
|
データベースサーバーのあるホスト名。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>port</literal></term>
|
|
<listitem>
|
|
<simpara>
|
|
データベースサーバーが動いているポート。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><literal>dbname</literal></term>
|
|
<listitem>
|
|
<simpara>
|
|
データベースの名前。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<simpara>
|
|
CUBRID との接続を確立するには、DSN 以外にもユーザー名とパスワードが必要です。
|
|
</simpara>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<example>
|
|
<title>PDO_CUBRID DSN の例</title>
|
|
<para>
|
|
CUBRID データベースに接続するための PDO_CUBRID DSN の例です:
|
|
<programlisting><![CDATA[
|
|
cubrid:host=localhost;port=33000;dbname=demodb
|
|
]]>
|
|
</programlisting>
|
|
</para>
|
|
</example>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
&reference.pdo-cubrid.entities.pdo-overloaded;
|
|
|
|
</reference>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|