Edit report at https://bugs.php.net/bug.php?id=52658&edit=1
ID: 52658 Updated by: ras...@php.net Reported by: cyoung at gcs dot neric dot org Summary: odbc_fetch_row doesn't fetch memo field Status: Open Type: Bug Package: ODBC related Operating System: Windows Sever 2008 PHP Version: 5.3.3 Block user comment: N Private report: N New Comment: If MS was actually dominant this bug would have been fixed. Only half-serious with that statement. ODBC gets very little use and thus very little attention. It is a fringe extension. A minor bug in a fringe extension can go unfixed for a very long time unless someone comes along and contributes a clean patch for it. You need to understand that Open Source isn't simply a new vendor that replaces your old proprietary software vendor. Open Source is a collaborative effort of interested parties. Sitting on the sidelines yelling aimlessly has absolutely no effect in this scenario. Previous Comments: ------------------------------------------------------------------------ [2012-02-15 10:34:51] phil at mair dot com This is unbelievable - Open Source is trying to dislodge MS from it's dominant role. You can't seriously expect to succeed in this objective if a MAJOR BUG ... and this is major to anyone trying to develop and support cross-platform applications ... like this is still "Status Open" and relying on patches 18 months after it was first flagged !! Get real people ! ------------------------------------------------------------------------ [2010-08-22 19:47:34] cyoung at gcs dot neric dot org I was able to find a way to fix this "problem" I was having when using odbc_fetch_row with memo fields. When I connected to the database I used the optional cursor_type parameter. $cnx = odbc_connect('$databaseName', 'user', 'pass', SQL_CUR_USE_ODBC); This seemed to allow odbc_fetch_row to retrieve the memo field successfully. I was getting the error below before inserting the cursor type into odbc_connect. PHP Warning: odbc_result() [<a href='function.odbc-result'>function.odbc-result</a>]: SQL error: [Microsoft][ODBC Microsoft Access Driver]Invalid cursor position; no keyset defined , SQL state S1109 in SQLGetData ------------------------------------------------------------------------ [2010-08-20 17:38:42] cyoung at gcs dot neric dot org Description: ------------ odbc_fetch_row doesn't retrieve a memo field from MS access db. It does however retrieve all the other fields in the same row successfully. Without the use of odbc_fetch_row, odbc_result retrieves the memo field exactly as expected. This obviously poses a problem only when trying to retrieve more than one row in a database, which is usually the case more than not. Test script: --------------- while(odbc_fetch_row($result)) { $newsID = odbc_result($result, "newsID"); $newsTitle = odbc_result($result, "newsTitle"); $titleLink = odbc_result($result, "titleLink"); $brief = trim(odbc_result($result, "brief")); $link = $titleLink.$newsID; $newsBrief = substr($brief, 0, 75); echo "<div id=\"newsLink\" class=\"newsTitle\"><a href=\"$link\" onclick=\"window.open('$link', 'GCSNews', 'width=500, height=400, menubar=no, toolbar=no, resizable=no, top=100, left=200'); return false;\">$newsTitle</a></div>"; echo "<div class=\"newsBrief\">$newsBrief...</div>"; } Expected result: ---------------- I expected the memo field "brief" to be fetched, trimmed, and then a substring of the first 75 characters to be stored in $newBrief and print out followed by ... Actual result: -------------- ... when trouble shooting, just echoing $brief showed nothing in the browser. $brief is an empty string when used in conjunction with odbc_fetch_row. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=52658&edit=1