Pues mira la verdad yo jamas he usado el odbc, pero no entiendo por que si php tiene su propia libreria para mysql y la cual funciona mucho mejor que cualquier otra cosa que puedas usar, estas usando el odbc....
no le encuentro sentido.....??


Alfredo Campos wrote:
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



--
Ing. Abel Hernandez Zanatta
Isssspea
Soporte Tecnico y Redes
01(449)910-2080 ext. 3835 01(449)910-2081 Cell 044 449 4486118

Responder a