Основы использования

Все примеры использования 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($resultMAXDB_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);
?>