Queridos Linuxeros:

A ver... después de pelearme otro rato con el unixODBC resulta que obtengo un comportamiento extraño.

Estado actual:
Tengo finalmente una configuración que parece funcionar.
En /etc/odbc.ini tenemos
[ODBC]
Trace           = Yes
TraceFile       = /tmp/sql.log
ForceTrace      = No
Pooling         = Yes

[MySQL]
Description     = Driver de ODBC para MySQL
Driver          = /usr/lib/libmyodbc3.so
Setup           =
FileUsage       = 2
CPTimeout       = 3
CPReuse         = 2

En /etc/odbcinst.ini tenemos:
[myodbc3]
Driver       = /usr/lib/libmyodbc3.so
Description  = MySQL ODBC 3.51 Driver DSN
SERVER       = localhost
PORT         = 3306
USER         = yuserneim
Password     = P4SsGu0r
Database     = test
OPTION       = 3
SOCKET       =

Y en mi archivo de ejemplo tenemos:
?php
       $DSN = "Driver=MySQL;Server=localhost;Database=test";
       $conn=odbc_connect($DSN,'yuserneim','P4SsGu0r');
       if (odbc_error() && strlen(chop(trim(odbc_error())))>0) {
               echo odbc_errormsg();
die('<p>Unable to connect to the database server at this time.</p>');
       }
       else {
               echo "<p>Ya me conecte</p>";
               $cur=odbc_exec($conn,"SELECT * FROM user");
               while (odbc_fetch_row($res)) {
echo "<p>".odbc_result($cur,0)." - ".odbc_result($cur,1)."</p>\n";
               }
       }
?>

Y bueno.. al menos no me manda ningún tipo de error al STDOUT (navegador). Y checando el /tmp/sql.log tampoco muestra alguna clase de error pues la salida dice:
[ODBC][2986][__handles.c][399]
               Exit:[SQL_SUCCESS]
                       Environment = 0x81f16d8
[ODBC][2986][SQLAllocHandle.c][328]
               Entry:
                       Handle Type = 2
                       Input Handle = 0x81f16d8
[ODBC][2986][SQLAllocHandle.c][448]
               Exit:[SQL_SUCCESS]
                       Output Handle = 0x81f1c68
[ODBC][2986][SQLDriverConnect.c][600]
               Entry:
                       Connection = 0x81f1c68
                       Window Hdl = (nil)
Str In = [Driver=MySQL;Server=localhost;Database=mysql;UID=root;PWD=******][length = 63]
                       Str Out = 0xbfff7e80
                       Str Out Max = 300
                       Str Out Ptr = 0xbfff7e7e
                       Completion = 0
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'

Pero oh sorpresa.... a la hora de que ejecuto el script de php sencillamente no me muestra nada :/ no hace nada.. contacta al webserver.. pero pues ya no manda ningúna clase de mensaje.. ni de error ni prosigue la ejecución... me supongo que el parser de PHP está tronando como ejote.. pues por los logs y la ausencia de mensajes de error me indican que no es problema del ODBC..

Sugerencias?

Saluditos geeks

--
When we have enough free software
At our call, hackers, at our call,
We'll throw out those dirty licenses
Ever more, hackers, ever more.

Responder a