|
odbc_binmode
Handling of binary column data
(PHP 4, PHP 5)
Examples ( Source code ) » odbc_binmode
Code Examples / Notes » odbc_binmodemizmerize
I am currently using an SQL Server 2000 used as a datasource for ODBC access, Testing PHP scripts from an Apache 2 server running on Windows 2000. I was trying to get an image from the database using ODBC but the output always flushes automatically while I was just getting the result using odbc_result() function. With this code, the picture automatically prints to the browser as soon as I hit odbc_result() (probably a bug, but bug reports aren't that easy to do). <?php $connH=odbc_pconnect("ImageDB","sa","",SQL_CUR_USE_IF_NEEDED) or die(odbc_errormsg()); $result=odbc_exec($connH, "SELECT Emp_Image FROM tblEmployeePics WHERE Emp_Id=547"); if ($result) { odbc_longreadlen($result, 131072); odbc_binmode($result,ODBC_BINMODE_PASSTHRU); //upon calling this, the output flushes out to the browser... made me scratch $m_FValue=odbc_result($result, 1); } ?> ...after 48 hours of scratching I finally made a work around, but by using a function in the bin2hex() function documentation... <?php function hex2bin($data){ $len = strlen($data); return pack("H" . $len, $data); } $connH=odbc_pconnect("ImageDB","sa","",SQL_CUR_USE_IF_NEEDED) or die(odbc_errormsg()); $result=odbc_exec($connH, "SELECT Emp_Image FROM tblEmployeePics WHERE Emp_Id=547"); if ($result) { odbc_longreadlen($result, 131072); odbc_binmode($result,ODBC_BINMODE_CONVERT); $m_FValue=odbc_result($result, 1); $out=hex2bin($m_FValue); } ?> The trick was to convert the output into hex by changing odbc_binmode to ODBC_BINMODE_CONVERT and using a handy function to convert it back to binary in order to facilitate manipulation of its size, depth etc... andrea dot galli
Example: retrieve image from database. <?php $Link_ID = odbc_connect("DSN", "user", "pass"); $Query_ID = odbc_exec($Link_ID, "SELECT picture FROM categories"); // change to ODBC_BINMODE_CONVERT for comparison odbc_binmode($Query_ID, ODBC_BINMODE_RETURN); $Images = odbc_result($Query_ID, 1); echo $Images; ?> |
Change Languageodbc_autocommit odbc_binmode odbc_close_all odbc_close odbc_columnprivileges odbc_columns odbc_commit odbc_connect odbc_cursor odbc_data_source odbc_do odbc_error odbc_errormsg odbc_exec odbc_execute odbc_fetch_array odbc_fetch_into odbc_fetch_object odbc_fetch_row odbc_field_len odbc_field_name odbc_field_num odbc_field_precision odbc_field_scale odbc_field_type odbc_foreignkeys odbc_free_result odbc_gettypeinfo odbc_longreadlen odbc_next_result odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_primarykeys odbc_procedurecolumns odbc_procedures odbc_result_all odbc_result odbc_rollback odbc_setoption odbc_specialcolumns odbc_statistics odbc_tableprivileges odbc_tables |