Files
doc-fr/reference/pdo_cubrid/reference.xml
2021-06-13 23:56:49 +01:00

338 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 68c2c871505aadf983f16113c5b077b335ce8d76 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="ref.pdo-cubrid" xmlns="http://docbook.org/ns/docbook">
<?phpdoc extension-membership="pecl" ?>
<title>Fonctions CUBRID (PDO_CUBRID)</title>
<titleabbrev>CUBRID (PDO)</titleabbrev>
<partintro>
<section xml:id="pdo-cubrid.intro">
&reftitle.intro;
<para>
PDO_CUBRID est un driver implémentant l'
<link linkend="intro.pdo">interface PHP Data Objects (PDO)</link>
pour activer l'accès depuis PHP aux bases de données CUBRID.
</para>
<note>
<para>
La version courante de PDO_CUBRID ne supporte pas les connexions
persistantes.
</para>
</note>
</section>
<!-- Information found in configure.xml -->
&reference.pdo-cubrid.configure;
<section xml:id="ref.pdo-cubrid.features">
<title>Fonctionnalités</title>
<table>
<title>Fonctionnalités PDO_CUBRID</title>
<tgroup cols="2">
<thead>
<row>
<entry>Fonctionnalités</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Curseurs scrollables</entry>
<entry>
PDO_CUBRID supporte les curseurs scrollables. Le type
de curseur par défaut est uniquement un curseur permettant
de se déplacer vers l'avant, et vous pouvez utiliser le
paramètre driver_options de la méthode
<function>PDO::prepare</function> pour modifier ce type
de curseur.
</entry>
</row>
<row>
<entry>Délai d'expiration</entry>
<entry>PDO_CUBRID supporte le délai d'expiration d'exécution
d'une requête sql ; vous pouvez utiliser la méthode
<function>PDO::setAttribute</function> pour définir la valeur.</entry>
</row>
<row>
<entry>Autocommit_mode et transaction</entry>
<entry>
PDO_CUBRID supporte à la fois l'autocommit_mode et
la transaction (autocommit_mode est activé par défaut).
Vous pouvez utiliser la méthode
<function>PDO::setAttribute</function> pour modifier ce
comportement.
<para>
Si vous utilisez <function>PDO::beginTransaction</function> pour
commencer une transaction, la méthode désactivera automatiquement
l'autocommit_mode et l'activera de nouveau après un appel à la
méthode <function>PDO::commit</function> ou la méthode
<function>PDO::rollBack</function>. Notez qu'avant de désactiver
l'autocommit_mode, tous les travaux en attente seront automatiquement
commités.
</para>
</entry>
</row>
<row>
<entry>Requêtes SQL multiples</entry>
<entry>
PDO_CUBRID supporte les requêtes SQL multiples.
Elles sont séparées par un point virgule (;).
</entry>
</row>
<row>
<entry>Informations sur un schéma</entry>
<entry>PDO_CUBRID implémente la méthode
<function>PDO::cubrid_schema</function> pour récupérer les informations
sur le schéma.
</entry>
</row>
<row>
<entry>LOBs</entry>
<entry>PDO_CUBRID supporte les types de données BLOB/CLOB.
Le LOB en PDO est représenté sous la forme d'un flux, aussi,
vous pouvez insérer des LOBs en liant un flux et récupérer des
LOBs en lisant un flux retourné par CUBRID PDO. Par exemple :
<para>
<example><title>Insertion de LOBs dans CUBRID PDO</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>
</para>
<para>
<example><title>Récupère des LOBs depuis CUBRID PDO</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>
</para>
</entry>
</row>
<row>
<entry>Méta-données des colonnes</entry>
<entry>
La méthode <function>PDOStatement::getColumnMeta</function> en CUBRID PDO
retournera un tableau associatif contenant les valeurs suivantes :
<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>
</entry>
</row>
<row>
<entry>Type de données de la collection</entry>
<entry>PDO_CUBRID supporte les types de données SET/MULTISET/SEQUENCE.
Si vous n'en spécifiez aucun, le type de données par défaut sera char,
par exemple :
<para>
<example><title>Insertion d'un jeu dans CUBRID PDO avec le type de données par défaut.</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>
</para>
<para>
<example><title>Spécifie le type de données lors de l'insertion du jeu dans 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>
Types de données liées CUBRID :(Le cinquième paramètre de la méthode PDOStatement::bindParam):
<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>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<!-- Information found in constants.xml -->
&reference.pdo-cubrid.constants;
</partintro>
<refentry xml:id="ref.pdo-cubrid.connection">
<refnamediv>
<refname>DSN PDO_CUBRID</refname>
<refpurpose>Connexion aux bases de données CUBRID</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>
Le DSN PDO_CUBRID est composé des éléments suivants, délimités par un point virgule :
<variablelist>
<varlistentry>
<term>préfixe DSN</term>
<listitem>
<para>
Le préfixe DSN est <userinput>cubrid:</userinput>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>host</literal></term>
<listitem>
<para>
Le nom d'hôte sur lequel se trouve le serveur de base de données.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>port</literal></term>
<listitem>
<para>
Le port sur lequel le serveur de base de données fonctionne.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>dbname</literal></term>
<listitem>
<para>
Le nom de la base de données.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Lorsque vous établissez la connexion à CUBRID, vous devez fournir le nom de
l'utilisateur et le mot de passe, mais pas le DSN.
</para>
</note>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemples de DSN PDO_CUBRID</title>
<para>
L'exemple suivant montre un DSN PDO_CUBRID pour une connexion à une base de données CUBRID :
<programlisting>
<![CDATA[
cubrid:host=localhost;port=33000;dbname=demodb
]]>
</programlisting>
</para>
</example>
</para>
</refsect1>
</refentry>
&reference.pdo-cubrid.entities.PDO;
</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
-->