Spyros_Spy Δημοσ. 17 Οκτωβρίου 2014 Δημοσ. 17 Οκτωβρίου 2014 Καλησπέρα!Προσπαθώ να δω στον σέρβερ μου αν έχει κάποια δεδομένα ένας συγκεκριμένος πίνακας και αν δεν έχει να κάνει κάτι. if($dbh->query($sql)->fetch() == 0) Ο παραπάνω κώδικας βγάζει error : PHP Fatal error: Call to a member function fetch() on a non-object in C:\xampp\htdocs\ratingsPost.php on line 18 του το ζητάω λάθος; Ευχαριστώ.
SpirosLouis Δημοσ. 17 Οκτωβρίου 2014 Δημοσ. 17 Οκτωβρίου 2014 if(($sth=$dbh->query($sql)) == 0) $sth->fetch(); Για δοκίμασε το παραπάνω.
Spyros_Spy Δημοσ. 17 Οκτωβρίου 2014 Μέλος Δημοσ. 17 Οκτωβρίου 2014 if(($sth=$dbh->query($sql)) == 0) $sth->fetch(); Για δοκίμασε το παραπάνω. Ακόμα το ίδιο error. :/
SpirosLouis Δημοσ. 17 Οκτωβρίου 2014 Δημοσ. 17 Οκτωβρίου 2014 Δεν γίνεται να παραθέσεις περισσότερο κώδικα; Πως φτιάχνεις το PDO κτλ (πρόσεχε να σβήσεις τίποτα κωδικούς) Edit: Δες και εδώ.. http://php.net/manual/en/pdostatement.fetch.php
Spyros_Spy Δημοσ. 17 Οκτωβρίου 2014 Μέλος Δημοσ. 17 Οκτωβρίου 2014 Δεν γίνεται να παραθέσεις περισσότερο κώδικα; Πως φτιάχνεις το PDO κτλ (πρόσεχε να σβήσεις τίποτα κωδικούς) Edit: Δες και εδώ.. http://php.net/manual/en/pdostatement.fetch.php $sql="SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID' )"; //if($dbh->query($sql)->fetch() == 0) if(($sth=$dbh->query($sql)) == 0) $sth->fetch(); { $sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')"; } $dbh->query($sql1); Περνάω με Post αυτές τις τιμές αν και μόνο αν το device που θα τις στείλει δεν έχει ξαναστείλει για το ίδιο BusinessID κάτι άλλο. Κολλάει στην αρχή των 2 If. Ο πίνακας ratings είναι κενός αυτήν την στιγμή.
PC_MAGAS Δημοσ. 17 Οκτωβρίου 2014 Δημοσ. 17 Οκτωβρίου 2014 Δοκίμασε αυτόν τον κώδικα: $sql="SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID' )"; //if($dbh->query($sql)->fetch() == 0) if(($sth=$dbh->query($sql)) == 0) { $sth->fetch(); $sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')"; } $dbh->query($sql1);
defacer Δημοσ. 17 Οκτωβρίου 2014 Δημοσ. 17 Οκτωβρίου 2014 Καλείς την fetch σε κάτι που δεν είναι object. Αυτό πάνω στο οποίο καλείς την fetch είναι το αποτέλεσμα της query. Πας στο manual και διαβάζεις να δεις πότε η query δεν επιστρέφει object. Η απάντηση είναι ότι επιστρέφει false όταν συμβεί σφάλμα. Βρες το σφάλμα και φτιάξτο. 1
Spyros_Spy Δημοσ. 19 Οκτωβρίου 2014 Μέλος Δημοσ. 19 Οκτωβρίου 2014 Το διόρθωσα : $check=$dbh->query("SELECT * FROM ratings where businessID ='$BusinessID' AND deviceID='$DeviceID'")->fetch(); if($check[0] == 0) { $sql1="INSERT INTO ratings VALUES(NULL,'$Rating','$BusinessID','$DeviceID')"; }
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα