php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10302 odbc_tables()
Submitted: 2001-04-12 10:47 UTC Modified: 2002-02-04 15:35 UTC
From: john at milnedunn dot netscapeonline dot co dot uk Assigned:
Status: No Feedback Package: ODBC related
PHP Version: 4.0.4pl1 OS: winnt4sp6
Private report: No CVE-ID: None
 [2001-04-12 10:47 UTC] john at milnedunn dot netscapeonline dot co dot uk
I think this may have been an issue in a previous release but I am still having it in this version.

after calling odbc_tables() I can not get the results using odbc_fetch_row() or odbc_result_all(), but odbc_num_rows() does return the number of tables in the database.

The system is using the precomplied version downloaded from zend with the default php.ini file. Oh and in ISAPI mode!

Thanks

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-04-18 21:37 UTC] kalowsky@php.net
can you please provide a sample script on how to reproduce this?
 [2001-04-23 12:27 UTC] john at milnedunn dot netscapeonline dot co dot uk
code example:-

<?php
$dsn="php";	// System DSN
$user="GUEST";
$passwd="";
$db = odbc_connect($dsn,$user,$passwd);
if(!$db) {
	echo "SORRY: could not connect to database<br>";
	die();
}

//------------------------------------------------
// get table list
//------------------------------------------------

$table_list=array();
$result = odbc_tables($db);
if($result) {
	$count=0;

               // debug lines
	echo odbc_num_rows($result) . " Tables found <br>";
	odbc_result_all($result);
               // end debug

	while(($report = odbc_fetch_row($result))) {
		$row[$count] = odbc_result($result,3);
		$count++;
	}

	if($count > 0) {
		sort($row);
		for(reset($row);$table_list[]=current($row);next($row)) { }
	} else {
		echo "SORRY. I Can't Get The Table Details<br>";
		die();
	}
}

//-------------------------------------------------
// get field names
//-------------------------------------------------
if(!$tables)
	$tables=$table_list[0];

$result = odbc_columns($db,"","","$tables");
if($result) {
	$row=array();
	$count=0;
	while(($report = odbc_fetch_row($result))) {
		$row[$count] = odbc_result($result,4);
		$count++;
	}

	if($count > 0) {
		sort($row);
		for(reset($row);$columns[]=current($row);next($row)) {}
	} else {
		echo "SORRY. I Can't Get The Field Details<br>";
		die();
	}
}

odbc_close($db);

odbc_num_rows() returns a count of tables in the database,
odbc_results_all() returns no rows,
odbc_fetch_row() returns false.

 [2001-05-16 02:51 UTC] john at milnedunn dot netscapeonline dot co dot uk
I have just updated php to 4.0.5 with the same results.
I also added odbc_error() and odbc_errormsg() after the 
'SORRY . I Cant't Get The Table Details' message, and they return empty stings.

Thanks
John
 [2001-05-16 04:24 UTC] john at milnedunn dot netscapeonline dot co dot uk
Update:

The same script works fine using the CGI interface.
If I select the reload page button on the browser, it works using ISAPI about 1 in 5 times!


 [2002-01-13 07:14 UTC] lobbin@php.net
Can you reproduce this error with 4.1.1?
 [2002-02-04 15:35 UTC] kalowsky@php.net
No feedback was provided for this bug, so it is being suspended.
If you are able to provide the information that was requested,
please do so and change the status of the bug back to "Open".
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Oct 06 02:01:27 2024 UTC