问题描述
odbc_num_rows
似乎仅对INSERT,UPDATE和DELETE查询可靠。
该手册说:
使用odbc_num_rows()确定SELECT后可用的行数将返回-1,其中包含许多驱动程序。
解决此问题的一种方法是COUNT(*)
用sql代替。请参阅此处的示例。
解决方法
当我在PHP
Web应用程序中构建网页时,“我的连接”可以正常工作,但是当我想获取查询中使用的SELECT语句的行数时,它给我-1!尽管我的结果集大约有10行。
我想获取结果集行的实际数量。我搜索了PHP手册和文档,但是找不到像Count函数之类的直接方法。
我想知道是否必须在另一个查询中创建Count(*)SQL语句并将其附加到我的Connection以获得行数吗?
有谁知道一种简单直接的方法来做到这一点?
odbc_num_rows函数的结果始终为-1,所以我无法获得实际的行数。
我的编程语言是PHP,我的数据库引擎是Sybase,连接数据库的方法是ODBC。
这是您我使用的代码:-
<?PHP
//PHP Code to connect to a certain database using ODBC and getting information from it
//Determining The Database Connection Parameters
$database = 'DatabaseName';
$username = 'UserName';
$password = 'Password';
//Opening the Connection
$conn = odbc_connect($database,$username,$password);
//Checking The Connection
if (!$conn)
{
exit("Connection Failed: " . $conn);
}
//Preparing The Query
$sql = "SELECT * FROM Table1 WHERE Field1='$v_Field1'";
//Executing The Query
$rs = odbc_exec($conn,$sql);
//Checking The Result Set
if (!$rs)
{
exit("Error in SQL");
}
echo "<p align='Center'><h1>The Results</h1></p>";
while ( odbc_fetch_row($rs) )
{
$field1 = odbc_result($rs,1);
$field2 = odbc_result($rs,2);
$field3 = odbc_result($rs,3);
echo "field1 : " . $field1 ;
echo "field2 : " . $field2 ;
echo "field3 : " . $field3 ;
}
$RowNumber = odbc_num_rows($rs);
echo "The Number of Selected Rows = " . $RowsNumber ;
//Closing The Connection
odbc_close($conn);
?>
感谢您的帮助 :)