dimitris2006 Δημοσ. 23 Δεκεμβρίου 2011 Δημοσ. 23 Δεκεμβρίου 2011 Καλησπέρα, χρησιμοποιώ για μια εργασία μου την εντολή "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
Uberalles_gr Δημοσ. 24 Δεκεμβρίου 2011 Δημοσ. 24 Δεκεμβρίου 2011 Σωστά το γράφεις, δηλαδή $number_of_rows = $result->fetchColumn() αλλά λογικά το query σου πρέπει να χτυπάει γιατί γράφεις > $sql =("SELECT COUNT(*) FROM 'users' WHERE userEmail='$trimemail'"); και οι παρενθέσεις είναι λάθος > $sql ="SELECT COUNT(*) FROM users WHERE userEmail = '".$trimemail."' ";
defacer Δημοσ. 24 Δεκεμβρίου 2011 Δημοσ. 24 Δεκεμβρίου 2011 Danger, Will Robinson! SQL INJECTION! Δεν ξέρω πώς δίνεις τιμή στην $trimemail, αλλά σίγουρα το πρόγραμμά σου έχει πρόβλημα: είτε γιατί δεν προστατεύεσαι από sql injection, είτε γιατί προστατεύεσαι σε λάθος μέρος (πιθανόν και με λάθος τρόπο).
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα