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>