J'essaie d'interroger un fichier MDB Access à l'aide de php odbc_connect et odbc_exec. L'idée est de retourner un tableau que je peux ensuite traduire en json.
J'utilise php via apache2 sur Ubuntu 12.10.
Voici mon code :
//Connect to the database
$conn=odbc_connect('stock-test','','');
//die if error
if (!$conn) {
die("Connection Failed: " . $conn);
}
//SQL query
$sql = "SELECT * FROM Stk_Items";
//This is the print command...see notes below for this
//print " "
//Execute SQL query
$rs=odbc_exec($conn,$sql);
//If no result, there is an error in the SQL
if (!$rs) {
exit("Error in SQL");
}
//Create an array to contain the results...
$arr = array();
//Loop through the results, pushing each array to the $arr array
while ($row = odbc_fetch_array($rs)) {
array_push($arr, $row);
}
print json_encode( $arr);
odbc_close($conn);
Maintenant, voici la chose étrange. Ce code ne produira le json que si j'imprime un espace blanc (ou tout autre caractère) avant que la commande odbc_exec ne soit émise (j'ai commenté la commande dans le code ci-dessus).
J'ai également effectué plusieurs autres tests (en faisant écho aux résultats, etc.) mais aucun ne fonctionne à moins d'imprimer un espace vide avant la commande odbc_exec.
Est-ce que je rate quelque chose d'évident ?