当我在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); ?>
感谢您的帮助 :)
odbc_num_rows 似乎仅对INSERT,UPDATE和DELETE查询可靠。
odbc_num_rows
该手册说:
使用odbc_num_rows()确定SELECT后可用的行数将返回-1,其中包含许多驱动程序。
解决此问题的一种方法是COUNT(*)用SQL代替。请参阅此处的示例。
COUNT(*)