<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Examples PDO_4D</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="ref.pdo-4d.sql4d.html">SQL acceptable by 4D</a></div> <div class="next" style="text-align: right; float: right;"><a href="refs.database.vendors.html">Vendor Specific Database Extensions</a></div> <div class="up"><a href="ref.pdo-4d.html">4D (PDO)</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="pdo-4d.examples" class="refentry"> <div class="refnamediv"> <h1 class="refname">Examples with PDO_4D</h1> <p class="verinfo">(No version information available, might only be in SVN)</p><p class="refpurpose"><span class="refname">Examples with PDO_4D</span> — <span class="dc-title">Examples PDO_4D</span></p> </div> <div class="refsect1 description" id="refsect1-pdo-4d.examples-description"> <p class="para"> This basic example show how to connect, execute a query, read data and disconnect from a 4D SQL server. <div class="example" id="example-993"> <p><strong>Example #1 Basic example with PDO_4D</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$dsn </span><span style="color: #007700">= </span><span style="color: #DD0000">'4D:host=localhost;charset=UTF-8'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$user </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$pass </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Connection to the 4D SQL server<br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$pass</span><span style="color: #007700">);<br /><br />try {<br /> </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))'</span><span style="color: #007700">);<br />} catch (</span><span style="color: #0000BB">PDOException $e</span><span style="color: #007700">) {<br /> die(</span><span style="color: #DD0000">"Erreur 4D : " </span><span style="color: #007700">. </span><span style="color: #0000BB">$e</span><span style="color: #007700">-></span><span style="color: #0000BB">getMessage</span><span style="color: #007700">());<br />}<br /> <br /></span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"INSERT INTO test VALUES('A', 'B')"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"INSERT INTO test VALUES('C', 'D')"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"INSERT INTO test VALUES('E', 'F')"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">'SELECT id, val from test'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-></span><span style="color: #0000BB">fetchAll</span><span style="color: #007700">());<br /><br />unset(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br />unset(</span><span style="color: #0000BB">$db</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> 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 ) ) </pre></div> </div> </div> </p> </div> <div class="refsect1 description" id="refsect1-pdo-4d.examples-description"> <p class="para"> This example shows how to execute a query in 4D language, and how to read the result through PDO_4D. <div class="example" id="example-994"> <p><strong>Example #2 Accessing 4D language from pdo_4d</strong></p> <div class="example-contents"><p> Set up a 4D method, called <em>method</em>. Make sure in the method properties that the option <em>Available via SQL</em> is checked. The 4D code is the following. </p></div> <div class="example-contents"> <div class="4dcode"><pre class="4dcode">C_TEXTE($0) $0:=Version application(*);</pre> </div> </div> <div class="example-contents"><p> The PHP code to use the above 4D method is : </p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$dsn </span><span style="color: #007700">= </span><span style="color: #DD0000">'4D:host=localhost;charset=UTF-8'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$user </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$pass </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Connection to the 4D server<br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$pass</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">'SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-></span><span style="color: #0000BB">fetchAll</span><span style="color: #007700">());<br /><br />unset(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br />unset(</span><span style="color: #0000BB">$db</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> ( [0] => Array ( [<expression>] => F0011140 [0] => F0011140 ) ) </pre></div> </div> </div> </p> </div> <div class="refsect1 description" id="refsect1-pdo-4d.examples-description"> <p class="para"> <div class="example" id="example-995"> <p><strong>Example #3 Escaping 4D table names</strong></p> <div class="example-contents"><p> This examples illustrates how to escape characters in a 4D SQL query. </p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$dsn </span><span style="color: #007700">= </span><span style="color: #DD0000">'4D:host=localhost;charset=UTF-8'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$user </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$pass </span><span style="color: #007700">= </span><span style="color: #DD0000">'test'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Connection to 4D server 4D<br /></span><span style="color: #0000BB">$db </span><span style="color: #007700">= new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #0000BB">$dsn</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$pass</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$objects </span><span style="color: #007700">= array(</span><span style="color: #DD0000">'['</span><span style="color: #007700">,</span><span style="color: #DD0000">']'</span><span style="color: #007700">,</span><span style="color: #DD0000">'[]'</span><span style="color: #007700">,</span><span style="color: #DD0000">']['</span><span style="color: #007700">,</span><span style="color: #DD0000">'[['</span><span style="color: #007700">,</span><span style="color: #DD0000">']]'</span><span style="color: #007700">,</span><span style="color: #DD0000">'[[['</span><span style="color: #007700">,</span><span style="color: #DD0000">']]]'</span><span style="color: #007700">,</span><span style="color: #DD0000">'TBL ]]32[23'</span><span style="color: #007700">);<br /><br />foreach(</span><span style="color: #0000BB">$objects </span><span style="color: #007700">as </span><span style="color: #0000BB">$id </span><span style="color: #007700">=> </span><span style="color: #0000BB">$object</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">$object </span><span style="color: #007700">= </span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">']'</span><span style="color: #007700">,</span><span style="color: #DD0000">']]'</span><span style="color: #007700">, </span><span style="color: #0000BB">$object</span><span style="color: #007700">);<br /> print </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$object</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /> <br /> </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'CREATE TABLE IF NOT EXISTS ['</span><span style="color: #007700">.</span><span style="color: #0000BB">$object</span><span style="color: #007700">.</span><span style="color: #DD0000">'](['</span><span style="color: #007700">.</span><span style="color: #0000BB">$object</span><span style="color: #007700">.</span><span style="color: #DD0000">'] FLOAT)'</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$req </span><span style="color: #007700">= </span><span style="color: #DD0000">"INSERT INTO [</span><span style="color: #0000BB">$object</span><span style="color: #DD0000">] ([</span><span style="color: #0000BB">$object</span><span style="color: #DD0000">]) VALUES (</span><span style="color: #0000BB">$id</span><span style="color: #DD0000">);"</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$q </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT [</span><span style="color: #0000BB">$object</span><span style="color: #DD0000">] FROM [</span><span style="color: #0000BB">$object</span><span style="color: #DD0000">]"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$q</span><span style="color: #007700">-></span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">$x</span><span style="color: #007700">[] = </span><span style="color: #0000BB">$q</span><span style="color: #007700">-></span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">);<br /><br /> </span><span style="color: #0000BB">$db</span><span style="color: #007700">-></span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">'DROP TABLE ['</span><span style="color: #007700">.</span><span style="color: #0000BB">$object</span><span style="color: #007700">.</span><span style="color: #DD0000">'];'</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> [ ]] []] ]][ [[ ]]]] [[[ ]]]]]] TBL ]]]]32[23 </pre></div> </div> </div> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="ref.pdo-4d.sql4d.html">SQL acceptable by 4D</a></div> <div class="next" style="text-align: right; float: right;"><a href="refs.database.vendors.html">Vendor Specific Database Extensions</a></div> <div class="up"><a href="ref.pdo-4d.html">4D (PDO)</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>