Основы использования
Все примеры использования MaxDB PHP в этой документации работают с демонстрационной базой HOTELDB из дистрибутива MaxDB. Более подробно об этой базе данных можно узнать по ссылке » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.
Для использования приведенных здесь примеров вам необходимо загрузить демонстрационные данные в вашу базу. После этого необходимо установить maxdb.default_db в php.ini таким образом, чтобы оно указывало на вашу демонстрационную базу.
Простой пример, демонстрирующий соединение, запуск запроса, печать результата и завершение сессии.
Пример #1 Обзорный пример использования MaxDB
<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* проверяем успешность соединения */
if (maxdb_connect_errno()) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
/* выполняем SQL-запрос */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());
/* печатаем результат */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {
echo " <tr>\n";
foreach ($line as $col_value) {
echo " <td>$col_value</td>\n";
}
echo " </tr>\n";
}
echo "</table>\n";
/* освобождает результирующий набор */
maxdb_free_result($result);
/* закрываем соединение */
maxdb_close($link);
?>
Следующий пример показывает, как связывать переменные с запросом SELECT INTO.
Пример #2 Пример использования запроса SELECT INTO
<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* проверяем успешность соединения */
if (!$link) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
/* выполняем SQL-запрос */
$stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!$stmt) {
printf ("Prepare failed: %s\n", maxdb_error($link));
}
$name = "Mbundu";
maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name);
maxdb_stmt_execute($stmt);
printf ("%f\n", $percentage);
maxdb_stmt_close ($stmt);
?>
Следующий пример демонстрирует использование процедур MaxDB.
Пример #3 Пример использования процедур
<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");
/* проверяем успешность соединения */
if (!$link) {
printf("Connect failed: %s\n", maxdb_connect_error());
exit();
}
maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);
$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";
maxdb_query($link, $query);
/* выполняем SQL-запрос */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
printf ("Prepare failed: %s\n", maxdb_error($link));
}
maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);
printf ("%s\n", $result);
maxdb_stmt_close ($stmt);
?>