Печать одного результата из запроса db2 в php - PullRequest
0 голосов
/ 02 ноября 2018

Я выполняю запрос к db2 в php-скрипте, который выполняется успешно, но я не могу заставить его отобразить фактический идентификатор выбранной записи. Это повторяет мое утверждение об успехе, показывая, что оно успешно выполнено, но мне нужно фактическое значение sessionid для сравнения в другом запросе.

Здесь я выбираю запись, выполняю запрос и проверяю выполнение, но я также пытаюсь использовать fetch_row и result для возврата единственного выбранного идентификатора:

$latest_result = "SELECT MAX(SESSIONID) as SESSIONID FROM session";
$prepareSessionMax = odbc_prepare($DB2Conn, $latest_result);
$executeSessionMax = odbc_execute($prepareSessionMax);

while(odbc_fetch_row($executeSessionMax)){
  $maxResult = odbc_result($executeSessionMax, "SESSIONID");
  echo $maxResult;
}

Как правильно вернуть sessionID в переменную из db2?

1 Ответ

0 голосов
/ 02 ноября 2018

Вы передаете неправильный параметр в odbc_fetch_row(), поскольку $executeSessionMax является либо Истиной, либо Ложью, в зависимости от успешного выполнения.

$latest_result = "SELECT MAX(SESSIONID) as SESSIONID FROM session";
$prepareSessionMax = odbc_prepare($DB2Conn, $latest_result);
$executeSessionMax = odbc_execute($prepareSessionMax);

while(odbc_fetch_row($prepareSessionMax )){
//  correction here  ^^^^^^^^^^^^^^^^^^
  $maxResult = odbc_result($executeSessionMax, "SESSIONID");
  echo $maxResult;
}

Вы можете перекодировать, так как это специально, так как MAX () будет когда-либо возвращать только одну строку, поэтому цикл while также не нужен.

$latest_result = "SELECT MAX(SESSIONID) as SESSIONID FROM session";
$prepareSessionMax = odbc_prepare($DB2Conn, $latest_result);
if (odbc_execute($prepareSessionMax)) {

    odbc_fetch_row($prepareSessionMax );
    $maxResult = odbc_result($executeSessionMax, "SESSIONID");
    echo $maxResult;
    // if echo gets lost try writing to a file
    error_log("maxResult = $maxResult", 3, "my-errors.log");

} else {
    // something went wrong in the execute
}

Вы также можете попробовать

$latest_result = "SELECT MAX(SESSIONID) as SESSIONID FROM session";
$result = odbc_exec($DB2Conn, $latest_result);
$rows = odbc_fetch_object($result); 
echo $row->SESSIONID;
$maxResult = $row->SESSIONID;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...