odbc — почему этот код не работает в PHP 7.0

Я пытаюсь создать SQL-запрос на основе пары значений месяца и даты, которые я получаю напрямую с компьютера пользователя с помощью PHP.

Моя проблема в том, что мой код работает FINE на моем тестовом сервере (wampp), но зависает на рабочем сервере (IIS8).

По сути, у меня есть несколько операторов If, затем, сравнивающих переменные с другими переменными, и, если условия выполняются, они используют другую конкретную переменную для создания оператора SQL.

У меня есть другие функции odbc / php, которые корректно работают на этом же сайте, однако именно этот код и другая, аналогичная функция зависают на сервере.

Любая помощь приветствуется.

function tmlySales() { // last year, this month sales

include('odbc_connect.php');

$salesPersonID = $_SESSION['SESS_SAP_ID'];

$conn=odbc_connect($server,$user,$pass);

$m = date('m');

if($m == 01) {

$month = 'SSSA10';

$year = date('Y', strtotime('-1 year'));

}

if($m == 02) {

$month = 'SSSA11';

$year = date('Y', strtotime('-1 year'));
}

if($m == 03) {

$month = 'SSSA12';

$year = date('Y', strtotime('-1 year'));

}

if($m == 04) {

$month = 'SSSA01';

$year = date('Y');

}

if($m == 05) {

$month = 'SSSA02';

$year = date('Y');

}

if($m == 06) {

$month = 'SSSA03';

$year = date('Y');

}

if($m == 07) {

$month = 'SSSA04';

$year = date('Y');

}

if($m == 08) {

$month = 'SSSA05';

$year = date('Y');

}

if($m == 09) {

$month = 'SSSA06';

$year = date('Y');

}

if($m == 10) {

$month = 'SSSA07';

$year = date('Y');

}

if($m == 11) {

$month = 'SSSA08';

$year = date('Y');

}

if($m == 12) {

$month = 'SSSA09';

$year = date('Y');

}

$sql = "SELECT ".$month." FROM REPSA WHERE SSRP#1=".$salesPersonID." and SSYEAR =".$year."";

$result = odbc_exec($conn,$sql);

while($row = odbc_fetch_array($result)) {

$tmlySales = $row[$month];

$currency = number_format($tmlySales,2);

echo '$ '.$currency.'';

}
}

0

Решение

Без ошибки это довольно сложно.
Сначала я бы сказал

$m = date('m');

возвращается строка не восьмеричное.

Вместо того, чтобы делать:

if($m == 02)

Вы должны сделать (см. Цитаты):

  if($m == '02')

Если вам нужен лучший ответ, предоставьте больше информации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]