From: lec at uchicago dot edu
Operating system: Mac OS X
PHP version: 5.1.2
PHP Bug Type: ODBC related
Bug description: php does not return data consistently
Description:
------------
Here is the problem, I was able to narrow the problem down to PHP ODBC,
but I am still not sure why. Specifically ODBC_exec not returning data
properly, but only in the case where there is text field or combination
of text and number, etc as bellow. It works with number, date, time,
timestamp alone, not text alone. The data will eventaully be returned but
only last 32 records from any # of records, and it takes for ever. I mean
sometimes with doing simple select on few thousand records is taking 5-10
mins.
run:
/opt/php5.1.2/bin/php test.php
You will need:
Mac OS X
PHP 5.1.2
Apache 2.2.0 (well command line is a problem as well, so no need for
apache)
iODBC 3.52.4
Oh yea on db side of things Mac OS X filemaker server w/odbc drivers. I am
willing to provide dev server access and/or test it.
Reproduce code:
---------------
<?php
putenv("DYLD_LIBRARY_PATH=/opt/libiodbc-3.52.4/lib");
putenv("ODBCINSTINI=/Library/ODBC/odbcinst.ini");
putenv("ODBCINI=/Library/ODBC/odbc.ini");
//$qry = "SELECT test FROM Person"; // test filed has text
// I limited this so it is readable
$qry = "SELECT PersonID, test FROM Person where PersonID>1 AND
PersonID<100";
print $qry;
$conn = odbc_connect("Person", "username", "password");
$queryresult=odbc_exec($conn,$qry);
odbc_result_all($queryresult,1);
odbc_close($conn);
?>
Expected result:
----------------
SELECT PersonID, test FROM Person where PersonID>1 AND
PersonID<100SQLNumResultCols
SQLNumResultCols
<table 1 ><tr><th>PersonID</th><th>test</th></tr>
<tr><td>1</td><td>hello</td></tr>
//... I did not want to copy all the data in here, but basically it just
gets id's and text.
<tr><td>67</td><td>hello</td></tr>
<tr><td>68</td><td>hello</td></tr>
<tr><td>69</td><td>hello</td></tr>
<tr><td>70</td><td>hello</td></tr>
<tr><td>71</td><td>hello</td></tr>
<tr><td>72</td><td>hello</td></tr>
<tr><td>73</td><td>hello</td></tr>
<tr><td>74</td><td>hello</td></tr>
<tr><td>75</td><td>hello</td></tr>
<tr><td>76</td><td>hello</td></tr>
<tr><td>77</td><td>hello</td></tr>
<tr><td>78</td><td>hello</td></tr>
<tr><td>79</td><td>hello</td></tr>
<tr><td>80</td><td>hello</td></tr>
<tr><td>81</td><td>hello</td></tr>
<tr><td>82</td><td>hello</td></tr>
<tr><td>83</td><td>hello</td></tr>
<tr><td>84</td><td>hello</td></tr>
<tr><td>85</td><td>hello</td></tr>
<tr><td>86</td><td>hello</td></tr>
<tr><td>87</td><td>hello</td></tr>
<tr><td>88</td><td>hello</td></tr>
<tr><td>89</td><td>hello</td></tr>
<tr><td>90</td><td>hello</td></tr>
<tr><td>91</td><td>hello</td></tr>
<tr><td>92</td><td>hello</td></tr>
<tr><td>93</td><td>hello</td></tr>
<tr><td>94</td><td>hello</td></tr>
<tr><td>95</td><td>hello</td></tr>
<tr><td>96</td><td>hello</td></tr>
<tr><td>97</td><td>hello</td></tr>
<tr><td>98</td><td>hello</td></tr>
<tr><td>99</td><td>hello</td></tr>
</table>
Actual result:
--------------
Notice the number and text do not work either, number alone does work.
SELECT PersonID, test FROM Person where PersonID>1 AND
PersonID<100SQLNumResultCols
SQLNumResultCols
<table 1 ><tr><th>PersonID</th><th>test</th></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>0</td><td></td></tr>
<tr><td>67</td><td>hello</td></tr>
<tr><td>68</td><td>hello</td></tr>
<tr><td>69</td><td>hello</td></tr>
<tr><td>70</td><td>hello</td></tr>
<tr><td>71</td><td>hello</td></tr>
<tr><td>72</td><td>hello</td></tr>
<tr><td>73</td><td>hello</td></tr>
<tr><td>74</td><td>hello</td></tr>
<tr><td>75</td><td>hello</td></tr>
<tr><td>76</td><td>hello</td></tr>
<tr><td>77</td><td>hello</td></tr>
<tr><td>78</td><td>hello</td></tr>
<tr><td>79</td><td>hello</td></tr>
<tr><td>80</td><td>hello</td></tr>
<tr><td>81</td><td>hello</td></tr>
<tr><td>82</td><td>hello</td></tr>
<tr><td>83</td><td>hello</td></tr>
<tr><td>84</td><td>hello</td></tr>
<tr><td>85</td><td>hello</td></tr>
<tr><td>86</td><td>hello</td></tr>
<tr><td>87</td><td>hello</td></tr>
<tr><td>88</td><td>hello</td></tr>
<tr><td>89</td><td>hello</td></tr>
<tr><td>90</td><td>hello</td></tr>
<tr><td>91</td><td>hello</td></tr>
<tr><td>92</td><td>hello</td></tr>
<tr><td>93</td><td>hello</td></tr>
<tr><td>94</td><td>hello</td></tr>
<tr><td>95</td><td>hello</td></tr>
<tr><td>96</td><td>hello</td></tr>
<tr><td>97</td><td>hello</td></tr>
<tr><td>98</td><td>hello</td></tr>
<tr><td>99</td><td>hello</td></tr>
</table>
--
Edit bug report at http://bugs.php.net/?id=36324&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=36324&r=trysnapshot44
Try a CVS snapshot (PHP 5.1):
http://bugs.php.net/fix.php?id=36324&r=trysnapshot51
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=36324&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=36324&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=36324&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=36324&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=36324&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=36324&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=36324&r=support
Expected behavior: http://bugs.php.net/fix.php?id=36324&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=36324&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=36324&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=36324&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=36324&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=36324&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=36324&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=36324&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=36324&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=36324&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=36324&r=mysqlcfg