Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, χρησιμοποιώ για μια εργασία μου την εντολή "mysql_num_rows()" για καταμέτρηση των αποτελεσμάτων ενός SELECT στην MySQL, αλλά μας ζητήθηκε να το κάνουμε σε PDO. Ψάχνοντας αρκετά στο Internet δεν κατάφερα να το κάνω να δουλέψει.

 

το SQL ερώτημα είναι "SELECT * FROM 'users' WHERE userEmail='$trimemail'"

 

έχω δοκιμάσει τις παρακάτω λύσεις που βρήκα χωρίς όμως αποτέλεσμα (το $dbh είναι το όνομα της σύνδεσης κατά το new PDO)

 

>$sql =("SELECT COUNT(*) FROM 'users' WHERE userEmail='$trimemail'");
$result = $dbh->prepare($sql); 
$result->execute(); 
$number_of_rows = $result->fetchColumn();
if($number_of_rows > 0){$num1=0;} //to $num1=1 to xreiazomai gia na epalitheusw an douleuei to erwtima

 

>$dbh->query("SELECT * FROM users WHERE userEmail='$trimemail'");
$foundRows = $dbh->query("SELECT FOUND_ROWS()")->fetchColumn();
echo $foundRows;

 

>if ($res = $dbh->query($sql)) {

if ($res->fetchColumn() > 0) {
 $num1=1;     }} //to $num1=1 to xreiazomai gia na epalitheusw an douleuei to erwtima

Δημοσ.

Σωστά το γράφεις, δηλαδή $number_of_rows = $result->fetchColumn() αλλά λογικά το query σου πρέπει να χτυπάει γιατί γράφεις

>
$sql =("SELECT COUNT(*) FROM 'users' WHERE userEmail='$trimemail'");

 

και οι παρενθέσεις είναι λάθος

 

>
$sql ="SELECT COUNT(*) FROM users WHERE userEmail = '".$trimemail."' ";

Δημοσ.

Danger, Will Robinson! SQL INJECTION!

 

Δεν ξέρω πώς δίνεις τιμή στην $trimemail, αλλά σίγουρα το πρόγραμμά σου έχει πρόβλημα: είτε γιατί δεν προστατεύεσαι από sql injection, είτε γιατί προστατεύεσαι σε λάθος μέρος (πιθανόν και με λάθος τρόπο).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...