1
0
mirror of https://github.com/php/doc-ja.git synced 2026-03-23 22:52:11 +01:00
Files
archived-doc-ja/reference/pdo_cubrid/reference.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
-->