Друг использует Filemaker pro 5.5 (старый, я знаю), и мне нужно извлечь данные с помощью odb c, поэтому я тестирую самую последнюю версию Filemaker Pro 18 (я знаю, что новые версии есть другие варианты доступа, такие как API, однако цель состоит в том, чтобы успешно атаковать Filemaker 5.5).
Я создал скрипт PHP, и соединение с DSN ODB C прошло успешно, и я получил результаты .
Получается, что возвращаемые данные закодированы и не читаются.
Что нужно сделать, чтобы получить данные правильно?
Ниже приведено успешное соединение DSN ODB C.
![enter image description here](https://i.stack.imgur.com/muDXx.jpg)
И это изображение сценария PHP, содержащее данные. 1019 *
![enter image description here](https://i.stack.imgur.com/AT9h5.jpg)
Ниже приведен скрипт php
<?php
$server = 'localhost';
$dsn = 'dsn-name';
$user = 'dsn-user';
$password = 'dsn-pass';
$conn = odbc_connect($dsn, $user, $password);
$table = "Contatos";
$nrows=0;
if ($conn)
{
$sql = sprintf("SELECT * FROM %s %s", $table, 'ORDER BY "Primeiro nome" DESC');
//this function will execute the sql satament
$result=odbc_exec($conn, $sql);
echo "<table align=\"center\" border=\"1\" borderColor=\"\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr> ";
// -- print field name
$colName = odbc_num_fields($result);
for ($j=1; $j <= $colName; $j++)
{
echo "<th align=\"left\" bgcolor=\"#CCCCCC\" > <font color=\"#990000\"> ";
echo odbc_field_name ($result, $j);
echo "</font> </th>";
}
$j=$j-1;
$c=0;
// end of field names
while(odbc_fetch_row($result)) // getting data
{
$c=$c+1;
if ( $c%2 == 0 )
echo "<tr bgcolor=\"#d0d0d0\" >\n";
else
echo "<tr bgcolor=\"#eeeeee\">\n";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
echo "<td>";
echo odbc_result($result, $i);
echo "</td>";
if ( $i%$j == 0 )
{
$nrows+=1; // counting no of rows
}
}
echo "</tr>";
}
echo "</td> </tr>\n";
echo "</table >\n";
// --end of table
if ($nrows==0) echo "<br/><center> Nothing for $table yet! Try back later</center> <br/>";
else echo "<br/><center> Total Records: $nrows </center> <br/>";
odbc_close ($conn);
}
else echo "odbc not connected <br>";
?>