Voorbeeld van het gebruik in PHP
Dit voorbeeld maakt gebruik van het krachtige en mooie PDO (PHP Data Objects).
Een script voor deze acties zou er als volgt uit kunnen zien:
!!! Let op, het is dus géén volledige code maar dient slechts ter illustratie en is getest met dummy informatie !!!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
error_reporting( E_ALL );
session_start( );
define( 'DB_HOST', 'localhost' );
define( 'DB_NAME', '' );
define( 'DB_USERNAME', '' );
define( 'DB_PASSWORD', '' );
$_SESSION['UserID'] = 3;
$_SESSION['order'] = array
(
4=>12,
6=>50
);
try
{
echo '<pre>';
// Maak een nieuw DB-object aan
$db = new PDO( 'pgsql:host='.DB_HOST.';dbname='.DB_NAME, DB_USERNAME, DB_PASSWORD );
// Start een transactie
$db->beginTransaction( );
// Voeg de order toe, geef ons UserID uit de sessie mee
if( !$db->Query( "SELECT api.sp_add_order( ".$_SESSION['UserID']." )" ) )
{
print_r( $db->errorInfo( ) );
exit;
}
// Bepaal het gegenereerde OrderID
$iOrderID = $db->lastInsertId( 'base.tbl_order_head_id_seq' );
echo 'Het gegenereerde OrderID is: '. $iOrderID;
// Voeg de regels toe, lees de producten uit een sessie
foreach( $_SESSION['order'] as $iProductID=>$iNumberItems )
{
$qryInsertProduct = "SELECT api.sp_add_product_to_order (".$iOrderID.", ".$iProductID.", ".$iNumberItems.")";
if( !$db->Query( $qryInsertProduct ) )
{
print_r( $db->errorInfo( ) );
exit;
}
}
// Maak de wijzigingen definitief
$db->commit( );
echo '</pre>';
}
catch( Exception $e )
{
echo 'Error!: ' . $e->getMessage( ) . '<br/>';
}
?>
error_reporting( E_ALL );
session_start( );
define( 'DB_HOST', 'localhost' );
define( 'DB_NAME', '' );
define( 'DB_USERNAME', '' );
define( 'DB_PASSWORD', '' );
$_SESSION['UserID'] = 3;
$_SESSION['order'] = array
(
4=>12,
6=>50
);
try
{
echo '<pre>';
// Maak een nieuw DB-object aan
$db = new PDO( 'pgsql:host='.DB_HOST.';dbname='.DB_NAME, DB_USERNAME, DB_PASSWORD );
// Start een transactie
$db->beginTransaction( );
// Voeg de order toe, geef ons UserID uit de sessie mee
if( !$db->Query( "SELECT api.sp_add_order( ".$_SESSION['UserID']." )" ) )
{
print_r( $db->errorInfo( ) );
exit;
}
// Bepaal het gegenereerde OrderID
$iOrderID = $db->lastInsertId( 'base.tbl_order_head_id_seq' );
echo 'Het gegenereerde OrderID is: '. $iOrderID;
// Voeg de regels toe, lees de producten uit een sessie
foreach( $_SESSION['order'] as $iProductID=>$iNumberItems )
{
$qryInsertProduct = "SELECT api.sp_add_product_to_order (".$iOrderID.", ".$iProductID.", ".$iNumberItems.")";
if( !$db->Query( $qryInsertProduct ) )
{
print_r( $db->errorInfo( ) );
exit;
}
}
// Maak de wijzigingen definitief
$db->commit( );
echo '</pre>';
}
catch( Exception $e )
{
echo 'Error!: ' . $e->getMessage( ) . '<br/>';
}
?>
Is dit gelukt? Gefeliciteerd!!! Met deze kennis zou je voldoende handvatten moeten hebben om de rest van je API zelf te bouwen :))
« vorige pagina | volgende pagina »
Inhoudsopgave
- Inleiding
- Voorbeeldcase
- Schema’s
- SQL Code en relaties
- Stored Procedures en het gebruik hiervan in je app
- Toevoegen van een order
- Voorbeeld van het gebruik in PHP
- Afsluiting