MSSQL - δεν μπορώ να πάρω sqlsrv_num_rows

Συζητήσεις για τον Microsoft SQL Server

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
invader7
Δημοσιεύσεις: 78
Εγγραφή: 24 Ιαν 2009 22:02

MSSQL - δεν μπορώ να πάρω sqlsrv_num_rows

Δημοσίευση από invader7 » 06 Σεπ 2011 21:02

Κώδικας: Επιλογή όλων



$serverName = "local";

$connectionInfo = array( "Database"=>"mydb");
$conn = sqlsrv_connect( $serverName, $connectionInfo);


$email = "info@test.gr";

$tsql = "select CAST(email AS TEXT) AS email from table where CAST([email] AS NVARCHAR(MAX)) = '$email' "; 

$rzStock=sqlsrv_query($conn,$tsql);
$partnumbers=sqlsrv_fetch_array($rzStock, SQLSRV_FETCH_ASSOC);

$row_count = sqlsrv_num_rows($rzStock);
echo $row_count ;



παίρνω λευκή σελίδα...

εαν βάλω στο τέλος

Κώδικας: Επιλογή όλων

if ($partnumbers['email'] != "") { $msg = "1";} else {$msg = "invalid";} echo $msg;
τότε παίρνω 1 άρα συνδέετε με την βάση και απλά δεν μπορώ να κάνω το numrow να δουλέψει

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

MSSQL - δεν μπορώ να πάρω sqlsrv_num_rows

Δημοσίευση από dva_dev » 06 Σεπ 2011 22:49

Δες το http://msdn.microsoft.com/en-us/library/ee376931.aspx. msdn is your 2nd best friend.
sqlsrv_num_rows requires a static or keyset cursor, and will return false if you use a forward cursor or a dynamic cursor. (A forward cursor is the default.) For more information about cursors, see sqlsrv_query and Specifying a Cursor Type and Selecting Rows.
Εχει ένα παράδειγμα από κάτω που ορίζει keyset cursor. Σε κάθε περίπτωση όμως και για να μην εξαρτάσαι από τα βίτσια και τα bugs του κάθε driver και της κάθε database, ένα "select count(*) from table" είναι πασπαρτού.

invader7
Δημοσιεύσεις: 78
Εγγραφή: 24 Ιαν 2009 22:02

MSSQL - δεν μπορώ να πάρω sqlsrv_num_rows

Δημοσίευση από invader7 » 06 Σεπ 2011 23:13

dva_dev έγραψε:Δες το http://msdn.microsoft.com/en-us/library/ee376931.aspx. msdn is your 2nd best friend.
sqlsrv_num_rows requires a static or keyset cursor, and will return false if you use a forward cursor or a dynamic cursor. (A forward cursor is the default.) For more information about cursors, see sqlsrv_query and Specifying a Cursor Type and Selecting Rows.
Εχει ένα παράδειγμα από κάτω που ορίζει keyset cursor. Σε κάθε περίπτωση όμως και για να μην εξαρτάσαι από τα βίτσια και τα bugs του κάθε driver και της κάθε database, ένα "select count(*) from table" είναι πασπαρτού.

σε ευχαριστώ έκανα κάτι παρόμοιο με το "μην εξαρτάσαι" :D ζήτησα την εγγραφή και έκανα ένα if ( blah != "") {blah = "1"} else {blah = "2"}

Απάντηση

Επιστροφή στο “MS SQL Server”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες