# Exemples

Ce qui suit est un simple exemple qui établit une connexion entre PHP et CUBRID. Cette section expose les fonctions les plus basiques et utiles. Le code suivant nécessite une connexion à la base de données CUBRID, ce qui signifie que le serveur CUBRID ainsi que le courtier CUBRID doivent être en fonctionnement.

L'exemple ci-dessous utilise la base de données demodb comme exemple. Par défaut, elle est créée durant l'installation. Assurez-vous que c'est bien le cas.

Exemple #1 Exemple de récupération de données

`<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<body>
<center>
<table border=2>
<?php
/**
* Définit les informations du serveur pour une connexion CUBRID.
* host_ip est l'adresse IP pointant l'installation du courtier CUBRID (localhost
* dans cet exemple), ainsi que le numéro de port à utiliser pour le courtier CUBRID.
* Le numéro du port est celui par défaut fourni lors de l'installation.
* Pour plus de détails, lisez le "Guide d'administration"
*/
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
/**
* Connexion au serveur CUBRID. N'effectue pas la connexion immédiatement,
* mais ne fait que retenir les informations de connexions. La raison
* pour laquelle la connexion ne s'effectue pas immédiatement est pour
* gérer les transactions plus efficacement sur des architectures en 3 parties.
*/
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
if (!$cubrid_con) {
echo "Erreur de connexion à la base de données";
exit;
}
?>
<?php
$sql = "select sports, count(players) as players from event group by sports";
/**
* Interroge le serveur CUBRID afin de récupérer les résultats de la requête SQL.
* Maintenant, nous effectuons réellement la connexion au serveur CUBRID.
*/
$result = cubrid_execute($cubrid_con, $sql);
if ($result) {
/**
* Récupère les noms des colonnes depuis le jeu de résultats créé par la requête SQL.
*/
$columns = cubrid_column_names($result);
/**
* Récupère le nombre de colonnes depuis le jeu de résultats créé par la requête SQL.
*/
$num_fields = cubrid_num_cols($result);
/**
* Liste les noms des colonnes depuis le jeu de résultats directement sur l'écran.
*/
echo "<tr>";
while (list($key, $colname) = each($columns)) {
echo "<td align=center>$colname</td>";
}
echo "</tr>";
/**
* Récupère les résultats depuis le jeu de résultats.
*/
while ($row = cubrid_fetch($result)) {
echo "<tr>";
for ($i = 0; $i < $num_fields; $i++) {
echo "<td align=center>";
echo $row[$i];
echo "</td>";
}
echo "</tr>";
}
}
/**
* Le module PHP dans CUBRID fonctionne en architecture 3 parties.
* Lors de l'appel à une requête de type SELECT dans une transaction, elle
* sera exécutée comme faisant partie de la transaction. Aussi, si la
* transaction est annulé avant l'appel à la requête SELECT, elle sera
* exécutée avec des performances moindres.
*/
cubrid_commit($cubrid_con);
cubrid_disconnect($cubrid_con);
?>
</body>
</html>`

Exemple #2 Exemple d'insertion de données

`<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc- kr">
</head>
<body>
<center>
<table border=2>
<?php
/**
* host_ip est l'adresse IP pointant l'installation du courtier CUBRID.
* host_port est le numéro du port du courtier CUBRID.
* db_name est le nom de la base de données CUBRID.
*/
$host_ip = "localhost";
$host_port = 33000;
$db_name = "demodb";
$cubrid_con = @cubrid_connect($host_ip, $host_port, $db_name);
if (!$cubrid_con) {
echo "Erreur lors de la connexion à la base de données";
exit;
}
?>
<?php
$sql = "insert into olympic (host_year,host_nation,host_city,"
. "opening_date,closing_date) values (2008, 'China', 'Beijing',"
. "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;";
$result = cubrid_execute($cubrid_con, $sql);
if ($result) {
/**
* Traitement réussi, nous pouvons commiter.
*/
cubrid_commit($cubrid_con);
echo "Insertion avec succès";
} else {
/**
* Une erreur est survenue, aussi, le message d'erreur est affiché et le rollback est appelé.
*/
echo cubrid_error_msg();
cubrid_rollback($cubrid_con);
}
cubrid_disconnect($cubrid_con);
?>
</body>
</html>`