MS Access ADO набор записей и двумерный массив

У меня есть база данных MS Access. Я хочу получить записи, а затем записать в двухмерный массив. Я могу, но я думаю, что область памяти набора записей и область памяти массива — то же самое. Потому что, если я закрою набор записей, я не смогу получить доступ к значениям массивов.

Ошибка: Исправляемая фатальная ошибка: объект варианта класса не может быть
преобразован в строку в …

$databaselocation = $_SERVER['DOCUMENT_ROOT'] . "ornek.mdb";
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
$conn->Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=$databaselocation");

$SQL1 = "SELECT * from konu";
$rs = new com("ADODB.RecordSet") or die("Recordset cant create!");
$rs->Open($SQL1,$conn,1,3);
$say =  $rs->RecordCount();
echo "Row Counts: " . $say . "<br><br>";

$dizi = array(array());for($a=0; $a<$say; $a++)
{
$dizi[$a][0] = $rs[0];
$dizi[$a][1] = $rs[1];
$rs->MoveNext;
}

$rs->Close(); $conn->Close();
$rs = null; $conn = null;

echo $dizi[0][0];     // this line ERROR  same below

for($a=0; $a<$say; $a++)
{
echo $dizi[$a][0] . " - " . $dizi[$a][1] . "<br>";    // ERROR
}

0

Решение

В $rs у вас нет строкового значения, но специальное COM объект. Обычно он автоматически конвертируется в string, В этом случае в любой ячейке у вас есть какое-то странное значение, например формула.

Пытаться variant_get_type () а также Список констант и проверить $rs[0], $rs[1] перед использованием.

И если я помню, вы должны использовать $rs->fields[0] имущество. (Да, вы используете эти методы)

0

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

я решил только сейчас. когда я приведу вариант объекта к строке его работал как
$ Dizi [$ а] [0] = (строка) $ Р. [0];

0

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