©
This document uses PHP Chinese website manual Release
(No version information available, might only be in Git)
Examples with PDO_4D — Examples PDO_4D
This basic example show how to connect, execute a query, read data and disconnect from a 4D SQL server.
Example #1 Basic example with PDO_4D
<?php
$dsn = '4D:host=localhost;charset=UTF-8' ;
$user = 'test' ;
$pass = 'test' ;
// Connection to the 4D SQL server
$db = new PDO ( $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', 'B')" );
$db -> exec ( "INSERT INTO test VALUES('C', 'D')" );
$db -> exec ( "INSERT INTO test VALUES('E', 'F')" );
$stmt = $db -> prepare ( 'SELECT id, val from test' );
$stmt -> execute ();
print_r ( $stmt -> fetchAll ());
unset( $stmt );
unset( $db );
?>
以上例程会输出:
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 ))
This example shows how to execute a query in 4D language, and how to read the result through PDO_4D.
Example #2 Accessing 4D language from pdo_4d
Set up a 4D method, called method. Make sure in the method properties that the option Available via SQL is checked. The 4D code is the following.
C_TEXTE($0) $0:=Version application(*);
The PHP code to use the above 4D method is :
<?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 );
?>
以上例程会输出:
( [0] => Array ( [<expression>] => F0011140 [0] => F0011140 ))
Example #3 Escaping 4D table names
This examples illustrates how to escape characters in a 4D SQL query.
<?php
$dsn = '4D:host=localhost;charset=UTF-8' ;
$user = 'test' ;
$pass = 'test' ;
// Connection to 4D server 4D
$db = new PDO ( $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 . '];' );
}
?>
以上例程会输出:
[ ]] []] ]][ [[ ]]]] [[[ ]]]]]] TBL ]]]]32[23