|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-12-18 13:52 UTC] kalowsky@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Sat Feb 14 20:00:01 2026 UTC |
Trying to read MS Access MEMO fields (these are large (>255 chrs) text fields) fails under 4.3.0RC3 in an Eval'd string whereas they work fine under 4.2.3. The error message returned is: Warning: SQL error: [Microsoft][ODBC Microsoft Access 97 Driver]Invalid cursor position; no keyset defined , SQL state S1109 in SQLGetData in c:\InetPub\php\classes\member.php(91) : eval()'d code on line 1 Below is an example of code that causes the problem. The $xFields var is a CSV list of fields in a table. If only the details field is a MEMO type then only this will fail. All other types of field (string or numeric) do not appear to have a problem. The error line will point to the line containing the 'eval' function call. ################CODE################## $xFields = "ref,name,details"; function coreLoad ($cur) { global $xFields; $flds = explode (",", $xFields); for ($i = 0; $i < sizeof ($flds); $i++) { $str = '$this->' . $flds [$i] . ' = odbc_result ($cur, ' . ($i + 1) . ');'; eval ($str); } } ################END OF CODE############## The connection to the MS Access database is through a standard ODBC connection via the Windows Control Panel. No other modules have been compiled into PHP either in 4.2.3 or 4.3.0RC3.