Я переместил базу данных с MySQL на сервер MS SQL, и теперь мне нужно перенести код PHP. Я использую PHP 7.0.33.
Моя проблема заключается в том, что код mysql работал с отдельными строками данных, поэтому после извлечения данных в ресурс внутри цикла каждая строка возвращалась через $r->data_seek($i)
а затем работал через ряд процедур.
Для моего нового кода MS SQL Server, мне нужно использовать функции sqlsrv_fetch_array
, sqlsrv_fetch_object
и т. д., и, кажется, нет понятия ряда.
Например, я заменил оригинальный код этим, и он работает:
$r = sqlsrv_query($db_conn, $sql, array(), array( "Scrollable" => 'static' ));
$col_max = sqlsrv_num_fields($res);
while (sqlsrv_fetch($res)) {
for($i = 0; $i < $col_max; $i++) {
$$key = sqlsrv_get_field($res, $i);
}
}
Но менять целую программу вот так — постепенно, очень больно.
Как я могу изменить исходный код (на основе mysql), чтобы я мог повторно использовать существующую функцию передачи строк за строкой?
Моя самая последняя проблема заключается в том, как заменить этот код MySQL на MS SQL Server:
$r = result
$i = row number to return
function fetch_sql_mysqli_row ($r, $i, $db_conn = null)
{
if ($i >= $r->num_rows)
{
$r->close();
return 0;
}
$r->data_seek($i);
return $r->fetch_row();
}
Я новичок в PHP, мой опыт в мире Oracle, поэтому заранее прошу прощения, если мой вопрос будет воспринят как глупый или наивный.
Спасибо заранее.
Задача ещё не решена.
Других решений пока нет …