小编典典

如何使用ODBC连接在PHP中获取结果集中的计数或行数?

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);

?>

感谢您的帮助 :)


阅读 185

收藏
2021-04-07

共1个答案

小编典典

odbc_num_rows 似乎仅对INSERT,UPDATE和DELETE查询可靠。

手册说:

使用odbc_num_rows()确定SELECT后可用的行数将返回-1,其中包含许多驱动程序。

解决此问题的一种方法是COUNT(*)用SQL代替。请参阅此处的示例。

2021-04-07