php-doc-en/reference/pdo_4d/examples.xml
Nilgün Belma Bugüner ddcceba83e fixed properties
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@283831 c90b9560-bf6c-de11-be94-00142212c4b1
2009-07-11 08:37:21 +00:00

277 lines
5.2 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="pdo-4d.examples" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>Examples with PDO_4D</refname>
<refpurpose>Examples PDO_4D</refpurpose>
</refnamediv>
<refsect1 role="description">
<para>
This basic example show how to connect, execute a query,
read data and disconnect from a 4D SQL server.
<example>
<title>Basic example with PDO_4D</title>
<programlisting role="php">
<![CDATA[
<?php
$dsn = '4D:host=localhost;charset=UTF-8';
$user = 'test';
$pass = 'test';
// Connection to the 4D SQL server
$db = new PDO_4D($dsn, $user, $pass);
try {
$db->exec('CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))');
} catch (PDOException $e) {
die("Erreur 4D : " . $e->getMessage());
}
$db->exec("INSERT INTO test VALUES('A', 'A')");
$db->exec("INSERT INTO test VALUES('B', 'A')");
$db->exec("INSERT INTO test VALUES('C', 'C')");
$stmt = $db->prepare('SELECT id, val from test');
$stmt->execute();
print_r($stmt->fetchAll());
unset($stmt);
unset($db);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Array
(
[ID] => A
[0] => A
[VAL] => B
[1] => B
)
[1] => Array
(
[ID] => C
[0] => C
[VAL] => D
[1] => D
)
[2] => Array
(
[ID] => E
[0] => E
[VAL] => F
[1] => F
)
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="description">
<para>
This example shows how to execute a query in 4D language,
and how to read the result through PDO_4D.
<example>
<title>Accessing 4D language from pdo_4d</title>
<para>
Set up a 4D method, called <literal>method</literal>. Make sure
in the method properties that the option
<literal>Available via SQL</literal> is checked. The 4D code
is the following.
</para>
<programlisting role="4d">
<![CDATA[
C_TEXTE($0)
$0:=Version application(*);
]]>
</programlisting>
<para>
The PHP code to use the above 4D method is :
</para>
<programlisting role="php">
<![CDATA[
<?php
$dsn = '4D:host=localhost;charset=UTF-8';
$user = 'test';
$pass = 'test';
// Connection to the 4D server
$db = new pdo($dsn, $user, $pass);
$stmt = $db->prepare('SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1');
$stmt->execute();
print_r($stmt->fetchAll()) ;
unset($stmt);
unset($db);
?>]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
(
[0] => Array
(
[<expression>] => F0011140
[0] => F0011140
)
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="description">
<para>
<example>
<title>Executing a LEFT JOIN in 4D</title>
<para>
This example shows how to execute a LEFT JOIN SQL query, with 4D.
</para>
<programlisting role="php">
<![CDATA[
<?php
$dsn = '4D:host=localhost;charset=UTF-8';
$user = 'test';
$pass = 'test';
 
// Connection to the 4D SQL server
$db = new PDO_4D($dsn, $user, $pass);
 
/* The SQL query is the equivalent of the following LEFT JOIN
SELECT
  classtypes.name,
  test.id AS id,
  test.val AS val
FROM
  test
LEFT JOIN
  classtypes
ON
  test.classtype=classtypes.id
*/
 
// Using SQL-89 Notation
$query = <<<SQL
SELECT
  classtypes.name,
  test.id AS id,
  test.val AS val
FROM
  test,
  classtypes
WHERE
  test.classtype=classtypes.id
  OR test.classtype IS NULL
SQL;
 
$stmt = $db->prepare($query);
$stmt->execute();
       
print_r($stmt->fetchAll());
 
$stmt = null;
$db = null;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="description">
<para>
<example>
<title>Escaping 4D table names</title>
<para>
This examples illustrates how to escape characters in a
4D SQL query.
</para>
<programlisting role="php">
<![CDATA[
<?php
$dsn = '4D:host=localhost;charset=UTF-8';
$user = 'test';
$pass = 'test';
 
// Connection to 4D server 4D
$db = new PDO_4D($dsn, $user, $pass);
$objects = array('[',']','[]','][','[[',']]','[[[',']]]','TBL ]]32[23');
foreach($objects as $id => $object) {
$object = str_replace(']',']]', $object);
print "$object\n";
$db->exec('CREATE TABLE IF NOT EXISTS ['.$object.'](['.$object.'] FLOAT)');
$req = "INSERT INTO [$object] ([$object]) VALUES ($id);";
$db->query($req);
$q = $db->prepare("SELECT [$object] FROM [$object]");
$q->execute();
$x[] = $q->fetch(PDO::FETCH_NUM);
$db->exec('DROP TABLE ['.$object.'];');
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
[
]]
[]]
]][
[[
]]]]
[[[
]]]]]]
TBL ]]]]32[23
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- 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:"../../../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
-->